DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML1.0 中文文檔(第二版)---5. 一致性(Conformance)
XML1.0 中文文檔(第二版)---5. 一致性(Conformance)
編輯:XML詳解     
5. 一致性
    5.1 進行驗證和不進行驗證的處理器
    5.2 使用 XML 處理器

5.1 進行驗證和不進行驗證的處理器(Validating and Non-Validating Processors)

合乎規范的 XML 處理器可以分為兩類:進行驗證的和不進行驗證的。

進行驗證和不進行驗證的處理器都必須報告在文件實體的內容中和任何其他它們讀到的已析實體中對格式正確性約束的違反。

[定義:進行驗證的處理器必須,由使用者選擇,報告違反 DTD 聲明中所述約束的情況以及不滿足本規范中給出的有效性約束的情況。] 要完成這一點,進行驗證的 XML 處理器必須讀取和處理整個 DTD 和所有在文件中引用的外部已析實體。

不進行驗證的處理器只被要求檢查文件實體和整個內部 DTD 子集的格式正確性。[定義:雖然它們不被要求檢查文件的有效性,但它們必須處理它們讀取的所有內部 DTD 子集中的聲明和所有參數實體,直到遇到第一個對它們沒有讀取的參數實體的引用;也就是說,它們必須根據這些聲明中的信息規范化屬性值,包含內部實體的置換文本,並提供缺省屬性值。] 除了 standalone="yes" 的情況,它們在遇到第一個對它們沒有讀取的參數實體的引用後,不應處理其後的實體聲明或屬性表聲明,因為此實體中包含的聲明可能覆蓋前面的聲明。

5.2 使用 XML 處理器

進行驗證的處理器的行為是高度可預測的;它必須讀取文件的所有部分,報告所有對格式正確性和有效性的違反。對一個不進行驗證的處理器的要求要低一點;它不需要讀取文件實體以外的任何文件部分。這對 XML 的處理器的使用者而言可能會有兩個重要的影響:

  • 某些格式正確性錯誤,尤其是那些要求讀取外部實體的,可能不會被不進行驗證的處理器檢測到。例子有稱為聲明實體,已析實體和無遞歸的約束,以及"4.4 XML 處理器對實體和引用的處理"中描述為被禁止的一些情況。
  • 取決於處理器是否讀取參數和外部實體,從處理器傳給應用的信息可能會有所不同。例如,不進行驗證的處理器可能不規范化屬性值,不包含內部實體的置換文本,或不提供缺省屬性值,這些動作要求先讀取外部或參數實體中的聲明。

為了使不同 XML 處理器間的互操作有最大的可靠性, 使用不進行驗證的處理器的應用不應依賴於不要求這些處理器具備的動作。 那些要求使用如缺省值或在外部實體中聲明內部實體等功能的應用應該使用進行驗證的 XML 處理器。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved