2010-06-02 31 views
0

我寫了一個自定義解析器類。它可以解析SYSTEM DTD,但不能解析PUBLIC DTD。當類必須解析PUBLIC DTD而不是資源的URI時,函數通過GetEntity函數的absoluteUri參數接收公共標識符。有針對這個的解決方法嗎。XmlResolver類'GetEntity函數

在範例中:

  • 如果我有像<!DOCTYPE document SYSTEM "document.dtd">一個DTD聲明然後將自定義解析器正確地通過GetEntity函數的絕對URI參數接收字符串「document.dtd」。
  • 如果我有一個類似於<!DOCTYPE document PUBLIC "-//Organization//DTD Document 1.0//EN" "http://localhost/document.dtd">的DTD聲明,那麼自定義解析器錯誤地接收字符串「 - // Organization // DTD Document 1.0 // EN」而不是「scheme://host/document.dtd」。

回答

1

我在棧溢出找到了答案right here。首先將公共標識符(-//Organization//DTD Document 1.0//EN)作爲參數傳遞,而不是 - 如果第一次調用導致錯誤 - DTD文件的URI(http://localhost/document.dtd)。