C# 反序列化时可以指定XML模式/xsd吗?

C# 反序列化时可以指定XML模式/xsd吗?,c#,xml,xml-deserialization,C#,Xml,Xml Deserialization,我试图从外部服务反序列化XML,因此我无法控制接收到的输出XML 该服务的XML有点奇怪。它不指定模式,而是引用自身。例如: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE response> <response> // blah blah </response> //废话 我可以使用VS的内置工具为其创建XSD文件,但在反序列化时,是否可以指定本地XSD文件?您可能需要指定在加载XML文档

我试图从外部服务反序列化XML,因此我无法控制接收到的输出XML

该服务的XML有点奇怪。它不指定模式,而是引用自身。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE response>
<response>
 // blah blah
</response>

//废话

我可以使用VS的内置工具为其创建XSD文件,但在反序列化时,是否可以指定本地XSD文件?您可能需要指定在加载XML文档时不使用XmlResolver,而不是使用DOCTYPE标记中不存在的一个。看


您可以轻松地指定.xsd文件。加载文档时使用XmlReaderSettings对象。请注意,如果您的程序是web服务,则.xsd可能需要驻留在Windows目录下。有关此问题的提示(包括64位Windows上的问题),请参见

,您可能需要指定在加载XML文档时不使用XmlResolver。看


您可以轻松地指定.xsd文件。加载文档时使用XmlReaderSettings对象。请注意,如果您的程序是web服务,则.xsd可能需要驻留在Windows目录下。有关此问题的提示,包括64位Windows上的问题,请参见

您遇到了什么问题?什么不起作用?对不起,约翰。我遇到的错误是:“出于安全原因,此XML文档中禁止DTD。若要启用DTD处理,请在XmlReaderSettings上设置DTD处理属性,以解析设置并将其传递到XmlReader.Create方法。”您遇到了什么问题?什么不起作用?对不起,约翰。我得到的错误是:“出于安全原因,此XML文档中禁止DTD。若要启用DTD处理,请在XmlReaderSettings上设置DTD处理属性,以解析设置并将其传递到XmlReader.Create方法。”谢谢,aaaa BBBBBB(好名字)。我之前指定了DtdProcessing=DtdProcessing.Ignore,但我没有将解析器设置为null。有了这些,我的反序列化工作开始了。谢谢,aaaa bbbb(伟大的名字)。我之前指定了DtdProcessing=DtdProcessing.Ignore,但我没有将解析器设置为null。有了这些,我的反序列化工作开始了。