XML Schema

维基百科,自由的百科全书
跳转至: 导航搜索

XML Schema因为W3C的推荐,在2001年五月发布,是許多XML schema languages中的一支。它是首先分離於XML本身的綱要語言,故取得W3C的推薦地位。

像所有XML綱要語言一樣,XML Schema有時用來表達一組綱要──一組XML文件必須遵守的規定,這樣根據該綱要才『合法(Valid)』。

然而,不像大部分其他綱要語言一樣,XML Schema亦意圖設計來確認在一收集來的資料與內附特殊資料型別的結果,它對開發XML文件處理軟件有助益,不過同時召來了非議。

引用[编辑]

因為有其他XML綱要語言存在,故在引用這W3C建議的語言時,使用XML Schema或W3C XML Schema,Schema永遠字首大寫。

一個XML Schema的實例是XML Schema定義XML Schema Definition: XSD),而且通常它的檔名後綴以".xsd"。該語言本身有時在通俗上說成XSD,雖然WXS(對W3C XML Schema來說)是更適當的字頭集縮寫initialism)。

歷史[编辑]

在它自己的參考資料附錄裡,XML Schema承認受到文件類型定義(DTD)和其他早期XML綱要成就如en:DDMLSOXXML-Data、以及XDR的影響。它看來從每個老大哥都效法一點點,然而它也在這些老大哥標準間妥協。在這些老大哥語言裡,XDR與SOX在XML Schema發布後仍繼續通行一陣子。不少微軟的產品支援XDR直到2006年十二月MSXML 6.0的發佈(MSXML 6.0拋棄了XDR改用XML Schema)[1]Commerce One, Inc支援它自己的SOX綱要語言直到該公司於2004年末破產。2004年十二月,Novell, Inc.購買了該公司包括那些與SOX相關的專利,據報導是盡力防止被某些不相關的、以打專利相關官司為生的公司剝削圖利[2]

後Schema驗證資訊集(Post-Schema-Validation Infoset)[编辑]

經過XML Schema為基的驗證後,依照驗證意含的資料模型表達XML文件結構與內容是可能的。XML Schema資料模型包括:

  • 字彙(元素與屬性名稱集)
  • 內容模型(關聯與結構)
  • 資料型別群

這些訊息集成又叫後Schema驗證資訊集(Post-Schema-Validation Infoset (PSVI))。PSVI賦予合法XML文件它的"型別"並促進以物件般處理文件,如使用面向对象程序设计(OOP)變化型般操作。

這種對XML資料存取的特別的面向对象程序设计實現主要為微軟──對XML Schema發展的主要貢獻者──所倡導。轉換一份XML文件到自行資料型別感知物件在某些軟體設計部份相當有利。然而批評家爭論這同時暗中破壞了開放性──XML的主要特徵──並且它偏向於兼容原生於微軟偏好的編程語言的資源類型[3]

另,從XML Schema資料型別繼承出去的(以及肇因於XML Schema資料型別的)限制、這些資料型別與其他XML Schema間受限的搭配、以及在其他W3C規格裡這些資料型別的相依性,是許多XML軟體發展師的爭論焦點[4]

示范[编辑]

一个Schema的简易示例,描述某个指定的国家,是这样的:

<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="country" type="Country"/>
 <xs:complexType name="Country">
  <xs:sequence>
   <xs:element name="name" type="xs:string"/>
   <xs:element name="population" type="xs:decimal"/>
  </xs:sequence>
 </xs:complexType>
</xs:schema>

一份遵从这个视图的XML文件:

<country
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="country.xsd">
  <name>France</name>
  <population>59.7</population>
</country>

參見[编辑]

  • RELAX NG - 另一種XML綱要語言(ISO國際標準)通常用在XML Schema資料型別上
  • XML信息集

外部鏈結[编辑]