XmlReader 上的屬性設定
XmlReader 類別擁有可以在讀取時修改的屬性,以及其他即使在讀取開始後才變更、亦不會因新設定而影響讀取的屬性。如果預設值並不適當,這些屬性需要在初始化讀取之前設定成正確的值。然而,某些屬性可以在讀取啟動之後進行修改。對於無法在呼叫 Read 後加以設定的屬性,讀取器會產生例外狀況。
下列表格會顯示開始讀取之後,哪種屬性可以修改。
類別 | 屬性 | 是否可以修改 |
---|---|---|
否 |
||
XmlTextReader |
是 |
|
XmlTextReader |
是 |
|
XmlTextReader |
是 |
|
否 |
||
XmlValidatingReader |
是 |
|
XmlValidatingReader |
是 |
|
XmlValidatingReader |
否 |
XmlValidatingReader 會將 XmlResolver 屬性傳播至所屬的 XmlTextReader 類別中。XmlNodeReader 類別沒有可設定的屬性。
正規化與 XmlResolver 設定
![]() |
---|
在 Microsoft .NET Framework 2.0 版本 版本中,建議您使用 XmlReaderSettings 類別與 Create 方法來建立 XmlReader 執行個體。如此可讓您充分利用 .NET Framework 2.0 所推出的所有新功能。Create 方法所建立的 XmlReader 物件會依預設執行正規化、加入預設屬性,以及擴充實體。如需詳細資訊,請參閱建立 XML 讀取器。 |
下列表格說明如何設定各種讀取器上的 XmlResolver 與 Normalization 屬性,以完成各種案例。
Normalization 屬性設定為 true 時,會將文字與泛空白字元節點中的行尾字元正常化,同時也會根據其型別將屬性值正常化。
XmlResolver 屬性可用來解析統一資源識別元 (URI) 所命名的外部資源,如外部文件類型定義 (DTD),或用來尋找結構描述。如需以不同讀取器使用 XmlResolver 屬性的詳細資訊,請參閱使用 XmlResolver 解析資源。
案例 | XmlResolver | Normalization 屬性 |
---|---|---|
不需要任何 DTD 或結構描述支援,或完全符合 XML 正規化與預設屬性。 |
設定為 Null 參考。 |
設定為 false,並使用 XmlTextReader 類別。 |
文件需要語式正確,包含外部實體和提供 DTD 的DocTypes。 |
設定為非 Null 參考。所有外部實體必須可以解析。 |
在傳遞至 XmlValidatingReader 前,在 XmlTextReader 上設定為 true。 |
文件格式必須正確,且 XML 必須為符合 DTD 的有效格式。 |
設定為非 Null 參考。所有外部實體必須可以解析。 |
在傳遞至 XmlValidatingReader 前,在 XmlTextReader 上設定為 true。 |
文件必須語式正確,並且需要結構描述驗證。 |
設定為非 Null 參考。所有外部實體必須可以解析。 |
在傳遞至 XmlValidatingReader 前,在 XmlTextReader 上設定為 true。 |
文件從 XmlNode 傳出 XML 資料的資料流時,格式必須正確。 |
不適用。 |
不適用。 |