2009-10-28 88 views
0

我有一些非常相似的XML结构,它们实际上很不相同,但是看起来XmlSerializer.Deserialize非常“宽容”,并且将不再使用XML并将其反序列化为由我创建的强类型对象源XSD。有没有办法让它更严格或做某种更深入的验证?如何让XmlSerializer.Deserialize更严格?

// Locals 
var serializer = new XmlSerializer(typeof(SomeCustomType)); 

// Set 
var someInstance = serializer.Deserialize(new StringReader(xmlString.ToString())) 

@Jeff因为根节点类似于将反序列化为完全不同的对象。想象一下,你有一个房子,一辆汽车和一艘船,它们都共享一个称为物品的基本根节点,并带有一些属性。尽管子节点无效且不共享,但它似乎忽视了原谅。

@我不想验证XSD。我想以某种方式让反序列化器看到它所拥有的数据不应该成为错误的对象类型。

+0

你能列举一个过于宽容的特定方式吗?我想这些可能是最好的个案基础上解决。 – 2009-10-28 16:27:21

+0

我会检查一下xsd并从那里去... – Will 2009-10-28 16:41:17

回答

0

问题是XML输入错误。

0

我曾经使用验证阅读器来验证XML与架构,因为我将它读入解串器。