此XML文档中禁止DTD - 如何更改权限?

时间:2010-04-29 16:14:22

标签: c# .net xml dtd oracle-coherence

我使用的是需要XML配置文件的第三方.NET组件。 我正在ASP.NET应用程序中使用它。

使用以下dtd配置XML时出现错误:

<!DOCTYPE prod-config SYSTEM "cache-config.dtd">

错误如下:

  

出于安全原因,禁止使用DTD   在这个XML文档中。启用DTD   处理设置ProhibitDtd   XmlReaderSettings上的属性为false   并将设置传递给   XmlReader.Create方法。

prod-config.dtd与XML配置文件位于同一目录中。

我无法访问组件代码来修改XmlReaderSettings,ProhibitDtd等。 是否还有我可以修改或标记XML文件以允许访问DTD?

(仅供参考,该组件是Oracle Coherence .NET客户端)

2 个答案:

答案 0 :(得分:0)

您是否需要指定DTD?如果没有实际使用它,那么完全省略DTD声明将是最简单的。

Oracle网站上的

Ths page表明该组件仅在.NET 1.1上受支持。我认为默认情况下拒绝DTD的行为在.NET 1.1和.NET 2.0之间发生了变化。如果您尝试使用.NET 2.0,我建议您尝试降级。安装1.1并排可能工作,但您可能需要破解配置以强制它使用所需的运行时版本。

答案 1 :(得分:0)

FWIW,我有同样的错误,我将行改为:

<!DOCTYPE prod-config "cache-config.dtd">

并修正了错误。不知道为什么会起作用,因此我可能会得到更多的错误。