DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> XML Schema幫你建模(1)
XML Schema幫你建模(1)
編輯:XML基礎     
 XML Schema是2001年5月正式發布的W3C(萬維網聯盟)的推薦標准,經過數年的大規模討論和開發如今終於奠定下來,成為全球公認的XML環境下首選的數據建模工具。

  由於XML是SGML(標准通用標示語言)的一個子集,它也繼承了SGML用於建模的DTD。使用DTD的好處是可以利用大量現有的DTD工具,使得開發應用代價維持在一個相對較低的水平。然而,DTD有不少缺陷:

  1. DTD是基於正則表達式的,描述能力有限;

  2. DTD沒有數據類型的支持,在大多數應用環境下能力不足;

  3. DTD的約束定義能力不足,無法對XML實例文檔做出更細致的語義限制;

  4. DTD不夠結構化,重用的代價相對較高;

  5. DTD並非使用XML作為描述手段,而DTD的構建和訪問並沒有標准的編程接口,無法使用標准的編程方式進行DTD維護。

  XML Schema正是針對這些DTD的缺點而設計的,它完全使用XML作為描述手段,具有很強的描述能力、擴展能力和處理維護能力。


  XML Schema簡介


  XML Schema的主要目的是用來定義一類XML文檔(一個XML Application)。因此,模式的“實例文檔”形式常常被用於描述一個與特定XML Schema相一致的XML文檔。事實上,文檔實例和Schema文檔都不是必須要以文檔的形式存在,它們可以以在應用之間傳遞的字節流的形式存在,或者作為一個數據庫記錄及XML的“信息項”的集合存在。然而為了簡化入門,我們總是把實例和模式看作文檔或者文件,認為它們總以文檔實例或是模式文檔的形式存在。

  這裡我們將結合一個實例來對XML Schema進行簡單的概述,希望大家通過閱讀本節的內容初步掌握的使用方法和XML Schema文檔實例的具體語義。XML Schema是Web Services技術中需要使用的一個基本工具,然而並不是XML Schema的所有特性都會被廣泛地使用,因此,本文將不對XML Schema規范做系統的介紹。

  在介紹XML Schema語法之前,先來考慮一個XML實例文檔po.xml。它描述了一個由家庭產品采購/支付應用生成的家庭產品購買訂單(參閱代碼1)。

  <!--代碼 1 po.xml,購買訂單的XML實例文檔-->
  <?xml version="1.0"?>
  <purchaseOrder orderDate="1999-10-20">
  <shipTo country="US">
  <name>Alice Smith</name>
  <street>123 Maple Street</street>
  <city>Mill Valley</city>
  <state>CA</state>
  <zip>90952</zip>
  </shipTo>
  <billTo country="US">
  <name>Robert Smith</name>
  <street>8 Oak Avenue</street>
  <city>Old Town</city>
  <state>PA</state>
  <zip>95819</zip>
  </billTo>
  <comment>Hurry, my lawn is going wild!</comment>
  <items>
  <item partNum="872-AA">
  <productName>Lawnmower</productName>
  <quantity>1</quantity>
  <USPrice>148.95</USPrice>
  <comment>Confirm this is electric</comment>
  </item>
  <item partNum="926-AA">
  <productName>Baby Monitor</productName>
  <quantity>1</quantity>
  <USPrice>39.98</USPrice>
  <shipDate>1999-05-21</shipDate>
  </item>
  </items>
  </purchaseOrder>

 

  這個購買訂單由一個跟元素purchaseOrder及其子元素shipTo、billTo、comment和items組成。這些子元素(除了comment)也依次包含了其它的一些子元素。

  葉子元素包含的是一個數字而不是任何子元素,如USPrice這樣的子元素。元素如果包含子元素或者是帶有屬性的,被稱為復合類型;反之元素如果僅僅包含數字、字符串或者其它數據等,但不包含任何子元素的,則被稱為簡單類型。在這個實例文檔中,復合類型和一些簡單類型是在購買定單的模式文檔中定義的,而其它一些標准的簡單類型則是作為XML Schema內置的簡單類型的形式出現的。

  在研究這個實例文檔的購買訂單模式文檔之前,先介紹一下購買訂單實例文檔和模式文檔之間的聯系。一個實例文檔實際上並不一定需要引用模式文檔,當然,在事實上的使用中,很多實例文檔確實引用了模式文檔,

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