DTD vs. XML Schema

來源:互聯網
上載者:User

DTD vs. XML Schema

  XML Schema 指定 XML Schema 定義語言,該語言提供了描述 XML 1.0 文檔結構和限制其內容的工具,其中包括那些利用 XML Namespace 的工具。模式語言自身用 XML 1.0 表示並使用名稱空間,它在很大程度上重構了 XML 1.0 DTD 具有的能力,並在一定程度上擴充了這些能力。請記住 DTD 有許多局限:

  □ 對於複雜需求通常很難使用內容模型。 
  □ 不支援名稱空間。 
  □ 對模組化和重用的支援非常有限。 
  □ 不支援對聲明擴充或繼承。 
  □ 編寫、維護和讀取大型 DTD 以及定義系列相關模式都很困難。 
  □ 沒有嵌入式、結構化自我文檔編製(self-documentation)(只有 <!-- comments --> 可用)。 
  □ 內容和屬性聲明不能依靠屬性或元素上下文(許多 XML 語言用到這一點,但它們的 DTD 必須“允許過多東西”)。 
  □ 只能使用一個簡單的識別屬性機制(換句話說,沒有唯一性範圍)。

  但 XML Schema 也有不足:

  □ XML Schema 比較複雜;只需要偶爾使用 XML 的程式員可能覺得它難得有些過頭。 
  □ XML Schema 不能請求特定的根項目(因此,即使驗證最簡單的文檔也要求額外的資訊)。 
  □ 當描述混合內容時,根本無法約束字元資料。 
  □ 內容和屬性聲明不能依靠屬性或元素上下文(這也是 DTD 的主要問題)。 
  □ 不能離開聲明指定預設值。 
  □ 元素預設值只能是字元資料(不包含標記)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.