1

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

该服务的 XML 有点奇怪。它没有指定模式,它引用自己。例如:

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

我可以使用 VS 的内置工具为其创建 XSD 文件,但是在反序列化时,是否可以指定本地 XSD 文件?而不是在 DOCTYPE 标签中使用不存在的标签?

4

1 回答 1

1

您可能需要指定在加载 XML 文档时不使用 XmlResolver。请参阅忽略 DOCTYPE .dtd,但 .dtd 文件必须仍然存在

您可以轻松指定 .xsd 文件。加载文档时使用 XmlReaderSettings 对象。请注意,如果您的程序是 Web 服务,您的 .xsd 可能需要驻留在 Windows 目录下。有关它的提示,包括在 64 位 Windows 上的痛苦,请参阅MSI 安装程序,64 位操作系统,写入 \windows\system32\inetsrv 文件夹

于 2011-01-18T23:50:24.740 回答