Schema 與DTD的比較 XML Schema 的特性 XML 資料型態 XML Schema 屬性宣告

Slides:



Advertisements
Similar presentations
仙佛慈悲云:「道場要把道務推廣, 講課的人佔很重要的一環,道理能 夠講得明白、深入、清楚,啟發眾 生向道之心,菩提根增長,才會有 助力走上這弘法利生的路。」 (《大 學聖訓》,頁 138 ) 仙佛慈悲云:「道場要把道務推廣, 講課的人佔很重要的一環,道理能 夠講得明白、深入、清楚,啟發眾 生向道之心,菩提根增長,才會有.
Advertisements

创造现代生活 纸的利用与装饰. 中国古代四大发明对世界文明的发 展有什么影响? 我们的调查:  四大发明在人类文明史上的重要地位 :  四大发明在欧洲近代文明产生之前陆续传入西方,成为 “ 资 产阶级发展的必要前提 ”( 《马克思恩格斯全集》 ) ,为资产阶 级走上政治舞台提供了物质基础:印刷术的出现改变了只有.
应用地球物理卓越人才培养体系构建与实践 吉林大学地球探测科学与技术学院 刘 财 经验交流.
2011 年中考复习教学研讨会议程 一、初三质检试卷分析(学科中学组成员) 1. 启明中学 2. 连江三中片 3. 凤城中学片 4. 全县质检数据通报 二、考试说明解读及复习建议.
以XML可延伸式標注語言建立文章標誌系統研究- 以蘇軾詩為範圍
必修2 第一单元 古代中国经济的基本结构和特点
3.2 农业区位因素与农业地域类型.
情緒管理與壓力調適 連廷嘉.
以賽亞書 Book of Isaiah.
人生格言: 天道酬勤 学院:自动化与电气工程学院 班级: 自师1201 姓名:刘 威.
第五单元 社会生活的变迁 第1课时 衡量变化的尺子 ——— 时间和纪年 新围初中 王济洪.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
通訊科技教育改進計畫 「網路應用與服務組」 行動電子商務課程 XML之簡介.
公文製作與習作 行政院秘書處 93年10月11日.
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
第三节 神经调节和体液调节的关系.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
年度校樹選拔秀 主辦單位:楊梅國小.
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
J107 胡婷涵 28號.
低碳生活,从小事做起 编辑人:刘瑞兴 指导老师:麦文燕 吴霞 编辑地址;岭南师范学院附属中学 编辑时间:
岳阳市教学竞赛课件 勾股定理 授课者 赵真金.
导 论.
中央广播电视大学开放教育 成本会计(补修)期末复习
XML 第05讲 使用CSS显示XML.
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
第三单元 发展社会主义民主政治.
3.3 资源的跨区域调配 ——以南水北调为例 铜山中学 李启强.
第十二单元 第28讲 第28讲 古代中国的科技和文艺   知识诠释  思维发散.
XML实用教程 第9讲 计算机与电子系—顾兵.
上海交通大学 概率论第一、二章测验题 大学数学教研室 童品苗.
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
中考语文积累 永宁县教研室 步正军 2015.9.
摘要說明 使用的時機:閱讀教育 步驟:介紹書籍資料後進行討論 適用的領域或議題:語文領域 單元名稱:自創教材.
小学数学知识讲座 应用题.
勾股定理 说课人:钱丹.
倒装句之其他句式.
星星的眼淚 星星的眼淚 班級:S202 座號:46 姓名:鄭媛文 作品:星星的眼淚
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
第 3 章 XML文件的轉換 –XSLT與XPath
专题4:JSP脚本和指令.
第3章 變數、資料型別與運算子.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
XPath读书报告 杨睿.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
何謂名稱空間 何謂URI 名稱空間的作用方式 使用名稱空間的注意事項
XML Scheam 也是用來驗證XML文件的驗證語法.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
导数及其应用 高三数学组 葛乃兵.
此簡報可能會牽涉到聽眾的討論活動,也就是所謂的執行項目。因此在進行簡報時﹐可充份利用 PowerPoint 來記錄這些執行項目:
<title> XML與XQuery ,新一代資料儲存標準 </title>
參考資料來源:國家圖書館遠距學園 簡報製作:林秀玲.
教育部增置國小圖書教師輔導與教育訓練計畫 圖書資訊教育教學綱要及教學設計小組 設計者:臺北市萬興國小 曾品方老師
參考資料來源:國家圖書館遠距學園 簡報製作:林秀玲.
张孝祥IT课堂 -深入体验Java Web开发内幕
C# 基本語法、變數.
第一部分 数字电路 第4章 组合逻辑电路 主讲教师:喻红.
第 6 章 XLink、XBase與XPointer
公文簽辦應注意事項 數字書寫、使用原則- 舉例說明:
公文書信製作 國立二林工商 人事室主任王慶城.
第11章 XML Schema Object Model物件模型
4. 曾文水庫越域引水環評報告彙整 資料來源: 1. 曾文水庫越域引水下游輸水工程環境影響差異分析暨環境現況差異分析及對策檢討報告(定稿本)
美丽的旋转.
資料來源:九德國小 新庄國小中年級圖書利用教育 書的身體 資料來源:九德國小 授課者 王美惠老師.
變數與資料型態  綠園.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
西南科技大学网络教育系列课程 动态网页设计(JSP) 补充 JSP操作XML文件.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

Schema 與DTD的比較 XML Schema 的特性 XML 資料型態 XML Schema 屬性宣告

簡介 現今 XML 最主要的功能是在程式、系統或是公司、組織之間交換資料,所以資料的正確性是相當重要的。資料的結構與格式的正確是基礎要求,這可以透過 XML Schema 或是 Document Type Definition (DTD) 來定義。 XML Schema 提供比 DTD 更多的彈性,且與 XML 語法相容,所以是較好的選擇。

Schema 與 DTD 的比較 DTD 的缺點 DTD 採用與 XML 不同的語法 無法支援名稱空間(Namespace) 僅能支援有限的資料型態 建立於字串取代的延伸機制(參數實體)

XML Schema的特性 XML Schema 本身就是一份良好格式的XML文件。 XML Schema 支援更多XML元素的「資料型態」,可以定義各種XML元素的資料型態。 XML Schema支援名稱空間,比起DTD擁有更大的擴充性。

結構 XML Schema 和 DTD 定義了一篇 XML 文章內可以使用的元素和屬性。XML Schema 提供比 DTD 更嚴格的定義。

結構 常用的Schema元素如下表所示: 元素 說明 schema XML Schema文件的根元素 simpleType 使用者自已定義的資料型態 element 宣告XML元素 complexType 宣告XML元素的子元素 attribute 宣告元素的屬性

XML Schema 資料型態 XML Schema 支援多達四十種以上的資料型態,而且允許使用者自定資料型態,這些資料型態是使用在XML元素和屬性內容。

內建資料型態 <xsd:element name=“code” type=“xsd:string”/> XML Schema支援內建資料型態,能夠直接用來定義XML元素或屬性的內容,如下所示: 上述指令的type屬性使用的就屬於內建資料型態string和decimal,用來定義XML元素code和price內容的資料型態。 <xsd:element name=“code” type=“xsd:string”/> <xsd:element name=“price” type=“xsd:decimal”/>

基本資料型態 XML Schema 內建的資料型態都是由一些基本資料型態所產生,如下表所示: 資料型態 格式說明 string “HELLO” recurringDuration 時間資料 boolean true,1,false,0 uriReference URL網址 float 浮點數字 ID 唯一的號碼 double 雙精度浮點數 IDREF 其他ID屬性值 decimal 數字 ENTITY 實體 timeDuration NOTATION 參考的記法

自訂資料型態 當需要替XML元素或屬性自訂資料型態時,我們需要使用simpleType元素定義所需的資料型態,語法如下所示: <simpleType name=“name” base=“datatypes”> <facets_element value=“value”/> ………… </simpleType>

自訂資料型態(續) 前頁simpleType元素的屬性說明如下: Name屬性:使用者自訂資料型態的名稱。 Base屬性:基底的資料型態,例如:string , boolean , float , double , decimal…等。

自訂資料型態(續) 在simpleType元素的子元素facets_element就是在描述資料型態的細節,如下所示 元素 說明 minInclusive 內容的最小且包含在內的值 maxInclusive 內容的最大且包含在內的值 minExclusive 內容的最小值但不包含在內 maxExclusive 內容的最大值但不包含在內 length 元素內容的長度 minLength 元素內容的最小長度 maxLength 元素內容的最大長度 pattern 正規語言的元素內容 enumeration 定義列舉元素內容

自訂資料型態(續) 定義數字範圍: 使用simpleType元素定義一個範圍的數字資料型態,例如訂購的數量最少為1,最大為100,如下所示: 上述指令轉換成數學運算示可表示成: 0<=OrderQuantity<=100 <simpleType name=“OrderQuantity” base=“integr”> <minInclusive value=“1”/> <maxInclusive value=“100”/> </simpleType>

自訂資料型態(續) 定義列舉的元素內容 如果元素內容為列與清單中的其中之一,如:色彩值紅、白、黑、和藍,如下所示。 <simpleType name=“color” base=“string”> <enumeration value=“red”/> <enumeration value=“white”/> <enumeration value=“blue”/> <enumeration value=“black”/> </simpleType>

自訂資料型態(續) 正規語法 當我們需要定義一個字串的模型如 02-22222222時,可以用以下的指令: <simpleType name=“PhoneNumver” base=“string”> <length value=“11”/> <pattern value=“\d{2}-\d{8}”/> </simpleType>

自訂資料型態(續) 上頁的\d代表數字,前二位,後八位,中間有個“-”符號,一些常用的正規語法如下: 正規語法 範例 Chap\d \d為數字,例如Chap1,Chap2 a*b *為任何次數的重複字元,例如b、ab、aab [xyz]a []內的字元為任一,例如xa、ya、za b?c ?為0或1,例如c、bc a+b +為最小一次重覆字元,例如ab、aab、aaab [a-d]x 定義範圍,例如ax、bx、cx、dx a{1,3}x 定義字元個數為1到3,例如ax、aax、aaax

XML元素宣告 XML Schema的目的就是在宣告XML文件的元素,目前共有兩種方法進行宣告,第一種是參考其他已經定義好的資料型態,另一種就是使用complexType元素同時定義字元素和資料型態,首先我們先來看看第一種元素宣告,使用的為element元素,基本的語法如下所示: <element name=“name” type=“type“ minOccurs=“int” maxOccurs=“int”/>

XML元素宣告(續) 上頁的宣告各屬性參數說明如下: name屬性:此為XML元素名稱。 type屬性:XML元素內容的資料型態,可為內建資料型態、simpleType和complexType 元素宣告的資料或名稱型態。 minOccurs屬性:元素最少出現的次數。 maxOccurs屬性:元素最多出現的次數,如為unbounded表示無限次數。

XML元素宣告(續) minOccurs和maxOccurs屬性值和其意義,相對於DTD指令如下表所示: minOccurs 說明 0 1 0或1,相當於DTD的「?」 出現一次 Unbounded 0或無限,相當於DTD的「*」 unbounded 1或無限,相當於DTD的「+」

內建資料型態 如果XML元素內容為內建資料型態,且沒有擁有其他子元素,此時便可直接使用內建資料型態宣告XML元素。 上述element元素宣告一個title的XML元素,此元素為字串string,而且只會出現一次。 <element name=“title” type=“string” minOccurs=“1” maxOccurs=“1”/>

內建資料型態(續) 如果XML擁有固定值,此時可使用fixed屬性指定元素值。 上述XML元素zero的值為0,因為我們使用fixed屬性指定其值。 <element name=“zero” type=“unsignedByte” fixed=“0” minOccurs=“1” maxOccurs=“1”/>

simpleType元素 對於比較複雜的資料型態,例如:ISBN圖書書號,我們可以用simpleType元素定義所需的新資料型態,如下: <simpleType name=“ISBNType” base=“string”> <pattern value=“\d{3}-\d{3}-\d{3}-\d{1}”/> </simpleType>

simpleType元素(續) 在定義好所需的資料型態後,我們就可以使用此型態宣告XML元素: 上述元素定義XML的ISBN元素,使用的資料型態就是上頁定義的ISBNType,則所呈現的資料舉例如下: ex:957-717-658-5 <element name=“ISBN” type=“ISBNType” minOccurs=“1” maxOccurs=“1”/>

complexType元素 如果XML元素擁有子元素,此時我們就需要使用complexType元素的子元素名稱和型態 <complexType name=“name” content=“elementOnly”> <element …/> </complexType> 上述的complexType元素的屬性參數說明如下: name屬性:此為資料型態的名稱。 content屬性:說明元素的內容為何,值elementOnly表示在宣告XML元素,值mixed表示宣告元素和屬性,值empty表示此為空元素。

complexType元素(續) <complexType name=“bookType” content=“elementOnly”>   <element name=“code” type=“string”/> <element name=“title” type=“string”/> <element name=“authorlist” type=“authorlsitType”/> <element name=“price” type=“decimal”/> </complexType> 上述的complexType元素定義了bookType的內容,也就是子元素code、title、authorlist和price,其中authorlist也是另一個complexType元素。

complexType元素(續) <element name=“book” type=“bookType” minOccurs=“1” maxOccurs=“unbounded”/> 上述這個元素出現次數最少為1,最多為無限,使用的bookType是上頁所宣告的一個complexType元素所建立的名稱型態,所以book元素擁有子元素code、title、authorlist和price。。

complexType元素(續) complexType元素的語法除了屬性外,其本身還擁有一些指令的子元素,如下: 子元素 說明 sequence XML子元素需依順序出現 choice 可以是XML子元素的任一個或數個 group 將基本的XML子元素建立成為一個群組 element 宣告XML元素 attribute 宣告XML屬性

complexType元素(續) 我們也可以用另一種方式,直接在element元素使用complexType子元素定義XML元素的子元素和屬性,如下: <element name=“name”> <complexType> ….. </complexType> </element>

sequence順序元素 sequence元素可以宣告XML子元素出現的順序,例如:book元素的子元素依序為code、title、authorlist和price,如下: <complexType name=“bookType” content=“elementOnly”> <sequence>   <element name=“code” type=“string”/> <element name=“title” type=“string”/> <element name=“authorlist” type=“authorlsitType”/> <element name=“price” type=“decimal”/> </sequence> </complexType>

choice選項元素 如果XML元素出現的次數允許選擇,也可能重覆出現,也可能不出現,choice可指定那些XML元素為選項元素:   <element name=“a” type=“string minOccurs=“1” maxOccurs=“1”/> <element name=“b” type=“string” minOccurs=“1” maxOccurs=“1”/> <element name=“c” type=“stringl” minOccurs=“1” maxOccurs=“1”/> </choice> 上述指令為三選一,只能為a,b,c元素其中之一。

choice選項元素(續) 如果有需要重覆出現,choice需要指定屬性。如下: <choice minOccurs=“0” maxOccurs=“unbounded”> ………… </choice> 上述元素屬性minOccurs和maxOccurs指出choice元素下的XML元素允許出現無限次,也可以為零次。

empty空元素 如果XML元素為空元素,只需指定complexType元素的content屬性即可 <element name=“image” minOccurs=“1” maxOccurs=“1”> <complexType content=“empty”> <attribute name=“file” type=“string” use=“required”/> </complexType> </element> 上述元素image並沒有內容,只擁有屬性file,此時合法的元素如下: <image file=“f1234.gif”/>

group群組元素 對於XML文件一些基本的XML元素,我們可以將它們給合成為一個group元素,例如:code,title,authorlist和price元素。 <group name=“bookData”> <sequence>   <element name=“code” type=“string”/> <element name=“title” type=“string”/> <element name=“authorlist” type=“authorlsitType”/> <element name=“price” type=“decimal”/> </sequence> </group>

group群組元素(續) 上述的group元素將code,title,authorlist和price建立成一個稱為bookData的群組,在建立好群組後,我們可以在宣告時直接使用此群組,下頁說明如何使用。

group群組元素(續) <complexType name=“bookType” content=“elementOnly”>  <sequence> <group ref=“bookData” minOccurs=“1” maxOccurs=“1”/> <element name=“image” minOccurs=“1” maxOccurs=“1”> <complexType content=“empty”> <attribute name=“file” type=“string” use=“required”/> </complexType> </element> </sequence> 上述的group元素使用ref屬性指定使用的群組,並可以指定出現的次數,不過請注意group元素需在真的參考前宣告。

XML Schema屬性宣告 使用XML Schema宣告XML元素後,接下來就是宣告XML元素的屬性,基本上屬性的宣告方式有兩種,一種使用內建資料型態或simpleType元素的自訂資料型態,另一種是在宣告同時,使用simpleType元素宣告所需的資料型態。

XML元素屬性 如果XML元素擁有屬性,我們就需要在宣告complexType元素或element元素時,同時宣告元素的屬性,使用的就是attribute元素,其語法如下: <attribute name=“name” type=“simple_type” use=“how_its_used” value=“value”/>

XML元素屬性(續) 上頁attribute元素可以宣告XML元素的屬性,一個attribute元去宣告一個屬性,其屬性參數的說明如下: Name屬性:XML元素的屬性名稱。 Type屬性:屬性的資料型態,可以使用內建或simpleType元素定義的資料型態。 Use/value屬性:這兩個屬性擁有關連性,use屬性為XML屬之的使用方式,不同的使用方式擁有不同的value屬性值,詳細的說明,如下表所示。

XML元素屬性(續) Use屬性值 Value屬性值 說明 Optional N/A Required N/A或預設值 Default Fixed 屬性如果存在,其內容一定是value屬性值

complexType元素的屬性 當使用attribute元素宣告XML屬性,通常都屬於complexType元素的子元素,如果complexType元素同時宣告有元素和屬性,此時的content屬性值為mixed。 <complexType name=“bookType” content=“mixed”> <sequence> …. </sequence> <attribute name=“sales” use=“required” type=“boolean”/> </complexType>

complexType元素的屬性(續) 上頁的attribute元素宣告一個sales屬性required表示為必須的屬性,宣告的屬性屬於此complexType元素的element元素,也就是book元素,如下: <element name=“book” type=“bookType” minOccurs=“1” maxOccurs=“unbounded”/> 上述的element元素宣告一個XML元素book,這個元素擁有屬性sales。

Element元素的屬性 同樣的attribute也可以屬於element元素的子元素,例如XML元素book擁有屬性code,如下所示: <element name=“book” type=“string”> <attribute name=“code” type=“string” use=“required”/> </element> 上述指示使用element元素宣告一個XML元素book後,同時也使用attribute宣告此元素的屬性code。

宣告XML屬性同時宣告資料型態 如果屬性值不是使用內建的資料型態,此時我們可以在宣告屬性時,同時使用simpleType元素宣告屬性的資料型態。 <attribute name=“name” use=“how_its_used” value=“value”> <simpleType base=“simpleType”> …………. </simpleType> </attribute>

attributeGroup元素 如同宣告XML元素時使用group群組元素,XML屬性一樣也可以使用attributeGroup元素建立群組屬性,例如:將原來圖書資料的XML元素都改為屬性內容,如下 <attributeGroup name=“bookAttr”>   <element name=“code” type=“string” use=“required”/> <element name=“title” type=“string” use=“required” /> <element name=“author” type=“string” use=“required” /> <element name=“price” type=“decimal” use=“required” /> </attributeGroup>

attributeGroup元素(續) 上頁群組屬性bookAttr宣告code,title, author和price屬性,接著可以在宣告XML元素book時,直接套用群組屬性,如下: <element name=“image” minOccurs=“1” maxOccurs=“1”> <complexType content=“empty”> <attributeGropu ref=“bookAttr”/> </complexType> </element>

attributeGroup元素(續) 上頁attributeGroup元素使用ref屬性參考群組屬性bookAttr,也就是說XML元素book將擁有群組屬性的所有屬性,如下: <book code=“F8931” title=“XML Schema探討” author=“JACK” price=“500”/>