2009-12-09 36 views
1

我們的C#程序讀取一個XML文件。 XML文件具有standalone ='no'標題。如何使用.NET控制DTD閱讀?

使用看起來像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:address打開DTD。

有人可以指導我一個配方告訴.NET在這種情況下只是靜靜地放棄嗎?我知道如何在Java中做到這一點,但在.NET中我有點失落。

回答

0

的讀者不會嘗試訪問DTD如果你有以下特性: .ProhibitDtd = FALSE; .XmlResolver = null;

+0

這不是發生在我身上的事情。當我將閱讀器選項中的解析器設置爲null時,它創建了一個默認解析器。 – bmargulies 2009-12-10 18:40:17