プロジェクト終了の前日、複雑な問題が発生しました。wtf サービスとそれを使用する 3 つのクライアント アプリケーションがあります。service には 3 つのメソッドがあり、それぞれが引数として xml ドキュメントを受け取り、xml ドキュメントを返します。これが彼らのコミュニケーション方法です。生成および受信したxmlを検証するためのxsdファイルがいくつかあります。今日まで、すべてがうまくいきました。私はポーランド語のウィンドウを持っていますが、今日は英語のウィンドウでアプリケーションを実行しています。ここまででお気づきかもしれませんが、受信した xml が無効であるというメッセージをアプリケーションから受け取りました。私はそれをチェックし、XMLで2倍になると想定されていたVaR値がピリオドで書かれていました(またはcoma、覚えていませんが、機能していませんでした)。私は今疑問に思っています - この問題に対する良い解決策はありますか? つまり、次のように 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 のセパレーターがどうあるべきかをバリデーターに伝える方法はありません。私が考えることができる唯一の解決策は、問題のある VaR 値が文字列であることを xsd で指定し、ピリオドまたはコンマを使用して倍数であるかどうかをプログラムで確認することです。