共用方式為


資料一致性及 XmlWriter

更新: November 2007

XmlWriter 類別包含兩個一致性檢查設定。您可以設定 XmlWriter,以檢查寫出的資料是否一致。

CheckCharacters 設定

XmlWriterSettings.CheckCharacters 屬性會指示寫入器檢查字元,並在有任何字元超出合法 XML 字元的範圍時,擲回 XmlException。如果啟用字元檢查,則會確保文件中的所有字元都在 W3C XML 1.0 建議事項 (英文) 所定義之合法 XML 字元的範圍內。

注意事項:

字元檢查不包括對 XML 名稱中不合法字元的檢查,也不包括檢查所有 XML 名稱是否有效。名稱檢查是一致性檢查的標準部分。如需詳細資訊,請參閱 http://www.w3.org/TR/REC-xml#NT-Name

預設會啟用字元檢查。

ConformanceLevel 設定

XmlWriterSettings.ConformanceLevel 屬性會設定 XmlWriter,以檢查及保證寫入的資料流遵守一組特定規則集。根據指定的一致性層級,來檢查 XML 資料,以查看其是否符合格式正確之 XML 1.0 文件或文件片段的規則。如果資料不一致,則會擲回 XmlExceptionArgumentException。預設值為 ConformanceLevel.Document。

注意事項:

如果寫入器設定為支援 ConformanceLevel.Fragment,但 XML 資料包含文件類型定義 (DTD),則寫入器會擲回例外狀況。如果有 DTD,則 XML 1.0 建議事項需要文件層級一致性。因此,如果在設定為支援 ConformanceLevel.Fragment 的寫入器上呼叫 WriteStartDocument 方法,則寫入器也會擲回例外狀況。

一致性層級

描述

Document

此設定可確保輸出符合格式正確之 XML 1.0 文件的規則,並且可使用任何符合的處理器進行處理。

注意事項:

寫入器不會剖析所寫入的 DTD 資訊。使用者應該確保 DTD 的格式正確。

Fragment

XML 資料符合格式正確之 XML 1.0 文件片段的規則。

此設定接受在最上層具有多個根項目或文字節點的 XML 資料。此檢查層級可確保任何處理器都可使用做為 XML 1.0 外部剖析實體讀取的資料流。

注意事項:

片段不允許使用 DTD。

Auto

寫入器會根據內送資料,決定要套用的一致性檢查層級。當您不瞭解產生的 XML 是片段還是格式正確的 XML 文件時,此設定會很有用。

文件一致性檢查適用於下列情況:

如果 XML 資料包含下列其中一項,則會套用片段一致性檢查:

  • 根層級有 Text、CDATA 或 EntityReference 節點。

  • 根層級有多個項目。

  • 根層級沒有任何項目。

如果出現衝突 (如當您嘗試在根層級寫入 Text 節點及 DTD 時),則會擲回 XmlException

當使用 Create 方法將其他功能加入至現有寫入器時,可在包裝案例中使用此設定。在此情況下,ConformanceLevel.Auto 不會加入任何新的一致性檢查。而會將一致性檢查留給正在包裝的寫入器。

請參閱

其他資源

使用 XmlWriter 寫入 XML