共用方式為


使用 XmlResolver 解析資源

XmlValidatingReader 類別使用 XmlResolver 來解析外部 DTD、實體及結構描述。若要解析這些外部資源,必須設定 XmlValidatingReader 中的 XmlResolver 屬性。下列範例顯示如何設定解析器,以解析 XmlValidatingReader 所使用的外部 DTD 資源。

dim vreader as New XmlValidatingReader(new XmlTextReader("http://www.alpineskihouse.org/abc.xml"))
dim resolver As new XmlUrlResolver()
vreader.XmlResolver = resolver
While (vreader.Read())
    . . . 
End While
XmlValidatingReader vreader = 
    new XmlValidatingReader(new XmlTextReader("http://www.alpineskihouse.org/abc.xml"));
vreader.XmlResolver = new XmlUrlResolver();
while(vreader.Read())
   {
       . . . 
   }

若要解析 DTD,XmlValidatingReader 會呼叫 GetEntity 方法來取得實體的資料流表示。如果 DTD 的 URI 是相對 URI,則 XmlValidatingReader 會呼叫 ResolveUri 方法,並為指定的 relativeUribaseUri 傳回絕對 URI。如果 XmlResolver 不知道如何解析指定的 URI,則會傳回 null 參考。

此外,如果存取外部資源需要安全性設定,則可適當地設定 Credentials 屬性。此屬性可讓使用者設定 URI 的驗證設定。如需提供認證的詳細資訊,請參閱從檔案讀取時將驗證認證提供給 XmlResolver

XmlUrlResolver 中的 GetEntity 方法會適當地使用 Credentials 屬性中的資訊,以存取資源。由於安全性原因,沒有針對此屬性的 get 存取子。當覆寫 XmlResolver 時,GetEntity 是利用 Credentials 屬性中認證資訊的方法。

如果您沒有為要使用的 XmlValidatingReader 提供 XmlResolver,則會建立預設 XmlUrlResolver,並使用 null 認證。

解析所有其他 XML 資源與解析 DTD 很相似。XmlResolver 只需要知道如何交涉與外部資源的連接,並傳回內容的資料流表示。它是向可轉譯資料流之 XmlResolver 發出呼叫的物件。

請參閱

概念

從檔案讀取時將驗證認證提供給 XmlResolver

其他資源

解析由 URI 命名的外部 XML 資源