我正在根据一些数据生成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;
}
谢谢!
答案 0 :(得分:0)
如果您想依赖内置的数据类型(例如十进制),那么它就不会对您有用,因为XSD的内置词汇表示是设计文化不变的。
如果您希望坚持生成数字的方式,那么您必须使用基于xsd:string的自定义数据类型的XSD。缺点是您在使用强类型的标准绑定时会遗漏...
其他人可能会说在消费之前应用转换,基本上插入自定义处理以补偿这种词汇差异。