2010年8月1日 星期日

[XML schema] simple element, attribute, restriction

在撰寫XML時, 我們或許會定義一份格式檔

他的功用就是說明你的XML裏面元素的結構是如何

讓讀者可以透過這份格式檔來快速理解你的XML內含甚麼元素、元素的類型代表甚麼

這樣的格式檔, 現時有兩種: XML schema與DTD

因為XML schema完全使用XML原本語法的關係,在使用上已經漸漸取代掉DTD了
我不太想要學快被淘汰沒用的東西, 在這裏就記錄一下XML schema基本的使用方法吧


simple element
simple element代表這個物件裡只含有單一的值(如"string, integer, date, time "等), 而不會再有階層式的其他物件

<xs:element title="my blog" type="string" />

而type的類型共有以下幾種:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time

-----------------------------
Attribute跟 restriction

<xs:attribute name="letter" type="xs:string" use="required" default="A">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]|[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>

其中,
<xs:attribute name="letter" type="xs:string" use="required" default="A" />
use的值為required代表這個attribute是必要的屬性, 而使用optional則是選擇性的
default="A" 則是說這個attribute預設的值為"A"

<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]|[a-z]"/>
</xs:restriction>
這是限制的部份, 定義letter這個attribute值的範圍
base="xs:string"代表這個是限制字串的屬性
pattern value 說明這個限制字串的屬性是只能填大或小寫的一個英文字母



Powered By Blogger

Label Cloud

2009 (1) 不能連localhost (1) 內嵌音訊 (1) 求職 (1) 面試 (1) 音樂 (1) 動畫師 (1) 帳號管理 (1) 排程 (1) 畢展 (1) 創意市集 (1) 惡意程式 (1) 電腦動畫 (1) 權限管理 (1) adobe (1) android (4) animation (1) animator (1) apache (3) art (5) art taipei 2008 (1) audio (2) bbs (1) birthday (1) black and white (1) browser (2) career (2) certification (1) cgw (1) cinematography (1) code (3) Collie (1) color (2) command (16) competition (1) computer science (3) connection (1) cover (1) crafyJS (1) creative (1) CSS (1) DBN (2) design (7) developer (1) display (1) drawing (1) eclipse (3) embed (1) engine (1) EntityJS (1) exception (1) exhibition (1) flower (1) frame (1) freebsd (11) french (1) friends (3) function (1) game (1) google (2) graphic (3) html (2) HTML5 (1) https (1) illustrator (1) image processing (1) interactive storytelling (1) internet (3) interview (1) introduce (1) ip (1) japan (1) java (4) javascript (3) JIT (1) jmonkey (1) job (1) jquery (1) LAMP (1) LimeJS (1) linux (8) liquid galaxy (1) ListView (1) localhost (1) log (1) mail (1) marquee (1) midi (1) mime-type (1) mis (1) MIT (2) mo-cap (1) mobile (1) Modernizr (1) motion capture (1) movie (1) music (3) narrative (2) NCCU (3) news (1) note (10) originality (1) otaku (1) painting (4) performance (1) photography (2) photoshop (7) php (1) player modelling (1) poster (1) postfix (1) programming (5) QuarkJS (1) resource (1) schema (1) scroll (1) self aware (1) semantic (1) server (1) share (1) sketch (2) software (4) solve (2) Sonivox (1) speaking (1) ssl (1) SSLPeerUnverifiedException (1) streaming (1) Subversion (1) sunspider (1) SVN (3) svn server (1) system (1) taipei (1) test (1) tfam (1) tool (1) TortoiseSVN (1) tutor (1) ubuntu (3) update (1) uri (1) video (1) vim (1) w3c (1) wap wcss css css2.0 (1) web (8) WebGL (1) webkit (2) well-form (1) wiimote (1) wiiusej (1) workshop (1) xhtml (1) xml (2)