2

いくつかのデータに基づいて XML を生成しています。カルチャはドイツ語に設定されているため、数値は 1087,1 の形式で生成されます (ドイツ語では 10 進数ではなくコンマが使用されるため)。問題は、XML を検証しようとすると、数値が英語形式 (1087.1) であると想定され、1087,1 が数値ではなく文字列と見なされるため、検証が失敗することです。

ドイツの数値形式で検証できる方法はありますか? または、英語の数値形式で XML を生成する必要がありますか? 以下は、XMLの検証に使用しているコードです

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas = xmlSchemaSet;
settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("Test.xml", settings);

while (reader.Read())
{
     if (!isXmlValid)
       break;
}

ありがとう!

4

1 に答える 1

0

組み込みのデータ型 (10 進数など) に依存したい場合は、XSD の組み込みの字句表現がデザイン カルチャ インバリアントによるものであるため、うまくいきません。

数値が生成される方法に固執したい場合は、基本的に xsd:string に基づいてカスタムメイドのデータ型を使用する XSD を使用する必要があります。欠点は、強力な型を使用する標準バインディングが欠落していることです...

消費する前に変換を適用すると言う人もいるかもしれません。基本的にはカスタム処理を差し込んで、このような字句の違いを補います。

于 2013-09-24T16:36:30.667 に答える