DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> XML 技術指南(2)
XML 技術指南(2)
編輯:XML基礎     

 

schema

  一個schema通常是一組為了描述一類給定的XML文檔而預先定好的規則。它定義了可以在指定XML文檔中出現的各個元素以及和某個元素相關的若干屬性。它同時定義了關於XML文檔的結構化信息,比如哪幾個元素是其他元素的子元素,子元素出現的順序和他們的數量。它還可以定義一個元素是否為空,能否包含文本或者屬性是否有默認值。

  DTDs(Document Type Definitions)和XML數據 都是怎樣描述XML文檔計劃的具體例子。

  文檔類型定義(Document Type Definitions)

  DTD語言是為了定義SGML文檔的確認規則而專門開發的。因為XML是SGML的一個子集,所以DTDs也可以用來定義XML的確定規則。與XMLschema不同,一個XML處理器可以在運行時用DTD來確定一個XML的合法性。

  DTD的語法有時可能會有一些晦澀難懂。DTDs使用不同的語法元素,諸如驚歎號、圓括號、星號、尖括號等,來定義在一個XML文檔中那些元素是必備的,哪些是可選的以及可以出現的元素數量等等。DTDs同時還定義了元素之間的關系和屬性於不同元素之間的關系。

  下面就是前面列出的hamburger.xml的DTD(hamburger.dtd):

<!ELEMENT  hamburgers           (hamburger)*>  
<!ELEMENT  hamburger            (name, description, price)>  
<!ATTLIST hamburger            lowfat CDATA #IMPLIED>
<!ELEMENT name                 (#PCDATA)>  
<!ELEMENT description           (#PCDATA)>  
<!ELEMENT price                (#PCDATA)>

  這篇文檔指出,hamburgers元素可以包含多個hamburger元素。同時,每一個hamburger元素必須包含一個lowfat屬性和三個子元素,所有的類型都是#PCData(parsed character data)。遵從這篇DTD的文檔都必須加入下面一行代碼:

  <!DOCTYPE hamburgers SYSTEM "hamburger.dtd">

  這句聲明告訴分析器不論DTD中的schema是什麼都認為XML文檔的內容是合法的

  盡管MSXML 2.0支持DTDs,但是你還是會發現使用它們是很費力的。它非常復雜並且難於掌握與使用。請注意,DTD語法並不是合法的XML。正因為如此,XML的處理器除了XML語法,還要支持用來描述schema的DTD語法。設想一下,假如我們用XML來描述schema,那麼開發者,特別是XML工具的提供者,所承擔的XML文檔檢驗工作將會變得容易得多。W3C正在考慮幾種彌補DTDs不足的方案以提高現在的語法定義過程。

  XML數據

  XML-Data是一種XMLschema語言。在微軟的定義中,XML-Dataschema通常是指XMLschema,而不是DTDschema。一個XML-Dataschema是一個具有良好結構的XML文檔。XML-Data語言基於XML-Data DTD,後者指明所期望的schema定義格式。因為XML-Dataschema是簡單的XML文檔,任何用於XML文檔的工具都可以用來定義XML-Dataschema。

  以下的XML-Dataschema產生的schema和先前由hamburger.dtd所定義的schema是一樣的:

<?xml version="1.0"?>
<Schema xmlns="schemas-microsoft-com:xml-data">
 <ElementType name="name" />
 <ElementType name="description" />
 <ElementType name="price" />
  <AttributeType name="lowfat" />
   <ElementType name="hamburger" />
   <element type="name" maxOccurs="1" />
   <element type="description" maxOccurs="1" />
   <element type="price" maxOccurs="1" />
   <attribute type="lowfat" maxOccurs="1" />
  </ElementType>
 <ElementType name="hamburgers" model="closed">
  <element type="hamburger" maxOccurs="*" />
 </ElementType>
</Schema>


  在XML-Dataschema中定義元素和屬性時,分別用到的是<ElementType>和<AttributeType>元素。它們提供了對元素和屬性類型的定義。定義一個元素或是屬性時用<element>或<attribute>標簽。你可以通過定義minOccurs/maxOccurs來指定元素允許出現的數量。schemaXML結構還定義了元素在XML文檔中允許出

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