【发布时间】:2009-12-09 22:18:35
【问题描述】:
我们的一个 C# 程序读取一个 XML 文件。 XML 文件具有standalone='no' 标头。
DOCTYPE 过去的样子:
<!DOCTYPE foo SYSTEM "silly.dtd">
silly.dtd 不在文件旁边。
由于种种原因,我把这个改成了
<!DOCTYPE foo PUBLIC "-//Some Public Id" "urn:outerspace:silly.dtd">
我预计不会有任何改变,因为 DTD 以前无法以 './silly.dtd' 的形式打开,现在也无法在 'urn:outerspace:silly.dtd' 中打开。唯一的区别是目录解析器不必担心系统 ID 的绝对化。
想象一下,我惊讶地发现 .NET 运行时出现异常,显然是试图在 urn: 地址打开 DTD。
能否有好心人指导我找到一个方法来告诉 .NET 在这种情况下安静地放弃?我知道如何在 Java 中做到这一点,但在 .NET 中我有点迷茫。
【问题讨论】: