DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML簡明教程(三) - asp.net
XML簡明教程(三) - asp.net
編輯:XML詳解     
MA簡介
   (一) Schema的引入

    通過上幾章介紹,相信大家對XML的基本語法已經有了一個基本了解。 XML本身的語法很嚴謹,也就是要求格式必須嚴整,包

括區分大小寫、整個文檔有且只有一個根、需要序言等等。在符合格式化良好的要求以後,就可以寫出規則整齊、可以通過內置XML解

析器的浏覽器解析XML文檔了。但XML本身也相當的靈活,在符合基本語法的前提下,可以任意的編寫各種符合XML語法要求的文檔,這

也正是XML可擴展的靈活性所在,但同時也產生了問題,比如要寫一個說明個人信息的XML文檔,可以這樣寫:

  <?XML version = “1.0” encoding=”GB2312” ?>

  <resume>

   <name>張立東</name>

   <sex>男</sex>

   <age>28</age>

   <birthday>1974-8-10</birthday>

   <address>北京市 海澱區</address>

  </resume>

   也可以這麼寫:

  <?XML version = “1.0” encoding=”GB2312”?>

   <resume>

   <name>張立東</name>

   <sex>男</sex>

   <age>28</age>

   <birthday>

   <year>1974</year>

   <month>8</month>

   <day>10</day>

   </birthday>

   <address>北京市 海澱區</address>

  </resume>

   上面的兩個文檔對於人來說是很容易看懂的,但對於機器來說,它們就無法判斷

  <birthday>1974-8-10</birthday>和

   <birthday>

   <year>1974</year>

   <month>8</month>

   <day>10</day>

   </birthday>

  中的內容是否相同了。這就需要一個相應的“約束”,來規定一個固定的格式,這樣機器才可以正確的識別、比較和處理。正如

沒有規矩難以成方圓一樣, XML這麼強大的語言自然也有這方面的考慮,這也就是DTD和Schema所要完成的功能。

   (二)DTD和Schema

    提到Schema就必須提到DTD。最早建立對SGML約束的是DTD,而XML又是SGML的超集,所以DTD由於歷史的原因也可以對XML本身

進行約束,比如:每個節點可以含有的元素、元素的個數等等。但它也有很多的局限性,如不能定義元素值的范圍、學習起來有一定

的難度(要學習一種新的語法)等等。而最新的XML約束標准就可以輕松的滿足要求,這就是Schema。Schema與DTD不同,DTD本身有自

己的語法和要求,而Schema是完全符合XML語法的,只要對XML有初步的了解,就很容易對Schema上手。說了這麼多,還是首先讓我們

通過一個例子來看看Schema是如何定義XML結構的吧:

  [1]<?XML version="1.0" encoding="GB2312" ?>

  [2]<Schema xmlns="urn:schemas-microsoft-com:XML-data"

  [3] XMLns:dt="urn:schemas-microsoft-com:datatypes">

  [4] <ElementType name= "name"/>

  [5] <ElementType name= "sex"/>

  [6] <ElementType name= "age"/>

  [7]

  [8] <ElementType name= "address" />

  [9] <ElementType name= "month"/>

  [10] <ElementType name= "year"/>

  [11] <ElementType name= "day"/>

  [12] <ElementType name= "birthday" content="eltOnly">

  [13] <element type= "year" />

  [14] <element type= "month" />

  [15] <element type= "day" />

  [16] </ElementType>

  [17] <ElementType name= "resume" content="eltOnly">

  [18] <element type= "name" />

  [19] <element type="sex"/>

  [20] <element type="age"/>

  [21] <element type="birthday"/>

  [22] <element type="address"/>

  [23] </ElementType>

  [24]</Schema>

   下面對上面的例子做一個簡單的講解:

   [1]行是一個XML序言,從這行也可以看出Schema是符合XML基本語法要求的。

   [2]-[3]是對Schema名域的一個定義。(由於我們這裡是一個XML的入門文章,有關XML的名域問題可以參考相應的XML文檔。)

   [4]定義一個名字為name的元素。

   [5]-[11]分別是對sex、age、address、month、year、day元素的定義。

   [12]-[16]是對birthday元素的一個定義,但birthday這個元素比較特殊,它其中又包含了year、month和day三個元素。

其中content這個屬性是對元素中的數據進行說明的。根據content中的數據eltOnly可以知道這個birthday元素的數據只能夠由元素構

成。

   [17]-[23]是對resume這個元素的定義,resume這個元素是由name、sex、age、birthday、address這幾個元素構成的。

   從上面的例子可以知道如何對一個簡單的元素進行定義,也可以知道一個由其他元素組成的元素如何定義。通過由元素組成的元

素的這種定義,就可以定義一個嵌套結構的XML樹的基本結構。

    到這裡讀者對Schema已經就有了一個基本的了解,也該是我們給Schame下一個簡單定義的時候了:

    XML Schema是用來描述XML元素和屬性的。它包括屬性和元素類型說明,是可以為XML元素和屬性提供數據的類型校驗模塊。

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