XML Schema
维基百科,自由的百科全书
XML Schema(譯按:XML綱要,業界建議不翻)如W3C建議,發布於2001年五月,是許多XML綱要語言中的一支。它是首先分離的於XML本身的綱要語言,故取得W3C的推薦地位。
像所有XML綱要語言一樣,XML Schema有時用來表達一組綱要──一組XML文件必須遵守的規定,這樣根據該綱要才『合法』。
然而,不像大部分其他綱要語言一樣,XML Schema亦意圖設計來確認在一收集來的資料與內附特殊資料型別的結果,它對開發XML文件處理軟件有助益,不過同時召來了非議。
目录 |
[编辑] 引用
因為有其他XML綱要語言存在,故在引用這W3C建議的語言時,使用XML Schema或W3C XML Schema,Schema永遠字首大寫。
一個XML Schema的實例是XML Schema定義(XSD),而且通常它的檔名後綴以".xsd"。該語言本身有時在通俗上說成XSD,雖然WXS(對W3C XML Schema來說)是更適當的字頭集縮寫(initialism)。
[编辑] 歷史
在它自己的參考資料附錄裡,XML Schema承認受到文件類型定義 (DTD)和其他早期XML綱要成就如en:DDML、SOX、XML-Data、以及XDR的影響。它看來從每個老大哥都師法一點點,然而它也在這些老大哥標準間妥協。在這些老大哥語言裡,XDR與SOX在XML Schema發布後仍繼續通行一陣子。不少微軟的產品支援XDR直到2001年十月MSXML 4.0的發佈(MSXML 4.0拋棄了XDR改用XML Schema)。Commerce One, Inc支援它自己的SOX綱要語言直到該公司於2004年末破產。2004年十二月,Novell, Inc.購買了該公司包括那些與SOX相關的專利,據報導是盡力防止被某些不相關的、以打專利相關官司為生公司播削圖利[1]。
[编辑] 後Schema驗證信息集(Post-Schema-Validation Infoset)
經過XML Schema為基的驗證後,依照驗證意含的資料模型表達XML文件結構與內容是可能的。XML Schema資料模型包括:
- 字彙(元素與屬性名稱集)
- 內容模型(關聯與結構)
- 資料型別群
這些訊息集成又叫後Schema驗證信息集(Post-Schema-Validation Infoset (PSVI))。PSVI賦予合法XML文件它的"型別"並促進以物件般處理文件,如使用物件導向編程(OOP)變化型般操作。
這種對XML資料存取的特別的物件導向編程實現主要為微軟──對XML Schema發展的主要貢獻者──所倡導。轉換一份XML文件到自行資料型別感知物件在某些軟體設計部份相當有利。然而批評家爭論這同時暗中破壞了開放性──XML的主要特徵──並且它偏向於兼容原生於微軟偏好的編程語言的資料型別[2]。
另,從XML Schema資料型別繼承出去的(以及肇因於XML Schema資料型別的)限制、這些資料型別與其他XML Schema間受限的搭配、以及在其他W3C規格裡這些資料型別的相依性,是許多XML軟體發展師的爭論焦點[3]。
[编辑] 範例
一個描述給定的某個國家,非常簡單的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資料型別上
[编辑] 外部鏈結
- W3C香港辦事處的權威翻譯
- XML及SGML名詞英漢翻譯表 (台灣)
- W3C XML Schema 規格: 入門, 結構, 資料集, and 其他
- Zvon XML Schema 參考資料
- XMLPatterns.com - Design patterns for developing XML Schema 文件
- XSD 教學 from XMLzoo
- 簡單XSD Schema教學
- W3Schools XML Schema 教學
- XMLFox 給視窗使用的免費XSD綱要編輯器
- Schema made simple Schema對Doctype的相對優勢
- <oXygen/> XML Schema 編輯器
|
|
---|---|
文档呈现语言 | HTML* - XHTML* - XML* - XForms* - DHTML* |
样式格式描述语言 | CSS* - XSL* |
动态网页技术 | CGI - ASP - ASP.NE.T. - ColdFusion - JSP - PHP |
客户端交互技术 | ActiveX - Java Applet - Flash - AJAX - XMLHTTP* |
客户端脚本语言 | JavaScript - JScript - VBScript - ECMAScript |
标识定位语言 | URL - URI - XPath |
文档纲要语言 | DTD* - XML Schema* |
*由W3C制定和维护的标准与规范 |