XML 验证 C# 本地化

本文关键字:本地化 验证 XML | 更新日期: 2023-09-27 18:31:39

我正在根据一些数据生成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;
}

谢谢!

XML 验证 C# 本地化

如果你想

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

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

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