2

我正在根据一些数据生成 XML。文化设置为德语,因此以 1087,1 格式生成数字(因为在德语中,它们使用逗号而不是十进制)。问题是当我尝试验证 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

如果您想依赖内置的数据类型(例如十进制),那么它对您不起作用,因为 XSD 的内置词法表示在设计文化上是不变的。

如果您希望坚持生成数字的方式,那么您必须使用使用自定义数据类型的 XSD,基本上基于 xsd:string。缺点是您缺少使用强类型的标准绑定......

其他人可能会说在使用之前应用转换,基本上插入自定义处理以补偿这种词汇差异。

于 2013-09-24T16:36:30.667 回答