我有一些非常相似的XML结构实际上是截然不同的,但看起来XmlSerializer.Deserialize是非常“宽容”的,并且它将不再采用XML并反序列化为我创建的强类型对象源XSD。有没有办法让它更严格或做某种更深层次的验证?
// Locals
var serializer = new XmlSerializer(typeof(SomeCustomType));
// Set
var someInstance = serializer.Deserialize(new StringReader(xmlString.ToString()))
@Jeff因为根节点类似,所以它会反序列化为完全不同的对象。想象一下,你有一个房子,汽车和船,它们都共享一个名为item的基本根节点,它有一些属性。即使子节点无效且未共享,它似乎也忽视并原谅了这一点。
@Will我不想验证XSD。我想以某种方式使Deserializer看到它所拥有的数据不应该被错误地转换为错误的Object类型。
答案 0 :(得分:0)
问题是XML输入不正确。
答案 1 :(得分:0)
我曾经使用验证读者来验证XML与模式的对比,因为我将其读入反序列化器。