質問
プロジェクトの終わりの前日、私は複雑な問題に遭遇しました:wtfサービスとそれを使用する3つのクライアントアプリケーションがあります。サービスには3つのメソッドがあり、それぞれが引数としてxmlドキュメントを受け取り、xmlドキュメントを返します。これが彼らのコミュニケーション方法です。生成および受信したxmlを検証するためのxsdファイルがいくつかあります。今日まですべてがうまくいきました。ポーランド語のウィンドウがあり、今日は英語のウィンドウでアプリケーションを実行しています。おそらくここまで気付いたように、受け取ったxmlが無効であるというメッセージをアプリケーションから受け取りました。私はそれをチェックし、xmlで2倍になるようにサポートされたVaR値はピリオドで書かれていました(またはa睡状態、私は覚えていませんが、機能していませんでした)。 私は今疑問に思っています-この問題の良い解決策はありますか?私は次のように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で単純に指定し、それがピリオドまたはcom睡状態の二重数であるかどうかをプログラムで確認することです
解決
XMLスキーマ仕様は、浮動小数点数がコンマを使用しないピリオド。ロケールは、有効なXMLには影響しません。
エラーは含めません。数字にカンマが含まれていると文句を言っていることを願っています。
所属していません StackOverflow