за день до завершения проекта я сталкиваюсь со сложной проблемой: у меня есть служба wtf и 3 клиентских приложения, использующих ее. Сервис имеет три метода, каждый из которых получает документ XML в качестве аргумента и возвращает документ XML. это то, как они общаются. У меня есть несколько файлов XSD для проверки сгенерированных и полученных XML. до сегодняшнего дня все работало нормально. У меня есть польские окна, и сегодня я запускаю свое приложение на английских окнах. как вы, вероятно, уже поняли, я получил сообщение из своего приложения о том, что полученный xml недействителен. я проверил это, и значение VaR, которое, как предполагалось, было двойным в xml, было написано с точкой (или кома, я не помню, но это не работало).
мне интересно сейчас - есть ли хорошее решение для этой проблемы? я имею в виду, что я проверяю 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 является строкой, а затем программно проверить, является ли оно двойным числом с точкой или комой.