XML Scheam 也是用來驗證XML文件的驗證語法. XML Schema 簡介 XML Scheam 也是用來驗證XML文件的驗證語法.
XML Schema與DTD DTD的缺點: 1.DTD使用一個屬於自己的語法. 2.DTD對於資源型態的支援過少. 1.任何一個XML Schema文件本身就是一個Well-Formed XML文件 2.XML Schema對於資料型態的支援較多,包含有字串,布林值,整數,浮點數時,間日期等資料型態 3.利用兩個屬性minOccur與maxOccur來達到控制子元素出現次數的目的,比起DTD更有彈性. 4.XML Schema使用名稱空間,因此具有可擴充性. 5.XML Schema採用開放空間的架構,不要求所有的元素與屬性必須先宣告使用. 6.XML Schema可以針對個別元素指定不同的XML Schema作為驗證語法. 7. XML Schema是一個Well-Formed XML文件,因此可以透過DOM介面存取細部元素與屬性.
Schema <. xml version=“1. 0” encoding=“Big5” Schema <?xml version=“1.0” encoding=“Big5” ?> <Schema xmlns=“urn:schemas-microsoft-com:xml-data” xmlns:dt=“urn:schemas-microsoft-com:datatypes”> <!—使用了內定的名稱空間宣告,以便解決標籤名稱相同的問題--!> <ElementType name="booklist" content="eltOnly"> <group minOccurs="0" maxOccurs="*"> <element type="book"/> </group> </ElementType> <ElementType name="book" content="eltOnly"> <group order="seq"> <element type="書名"/> <group minOccurs="1" maxOccurs="*"> <element type="作者"/> </group> </group> </ElementType> <ElementType name="書名" content="textOnly"> <AttributeType name="書號" required="yes"/> <attribute type="書號"/> </ElementType> <ElementType name="作者" content="textOnly"/> </Schema>
XML <. xml version=“1. 0” encoding=“Big5” standalone=“no” XML <?xml version=“1.0” encoding=“Big5” standalone=“no” ?> <booklist xmlns=“x-schema:ex7-01-s.xml”> <!—使用了內定是的名稱空間宣告,並導入驗證依據ex7-01-s.xml--!> <book> <書名 書號="O01001">一起玩OfficeXP</書名> <作者>志凌資訊</作者> </book> <book> <書名 書號="D01001">21世紀電腦概論</書名> <作者>江高舉</作者> <作者>劉緻儀</作者> </book> </booklist>
XML元素宣告<ElementType> 相關限制: 1. 發生次數不限制 2. 父元素:<Schema> 3 XML元素宣告<ElementType> 相關限制: 1.發生次數不限制 2.父元素:<Schema> 3.允許子元素:<attribute> <AttributeType> <datatype> <description> <element> <group> DTD <!ELEMENT 備註 EMPTY> <!ELEMENT 作者(#PCDATA)> <!ELEMENT book (書名,備註)> <!ELEMENT book (#PCDATA|書名,定價)*> XML Schema <ElementType name=“備註” content=“empty”/> <ElementType name=“作者” content=“textOnly”/> <ElementType name=“book” content=“eltOnly”/> <element type=“書名”/> <element type=“備註”/> </ElementType> <ElementType name=“book” content=“mixed”/> <element type=“定價”/>
XML元素宣告<ElementType> <ElementType name=“元素名稱” content=“empty”|”textOnly”|”eltOnly”|”mixed” model=“open”|”closed” order=“one”|”seq”|”many” dt:type=“元素內容的資料型態”> </ElementType> order:many:允許子元素按照任意排列順序出現,對應 DTD中(A|B|C)*
XML子元素宣告<element> 發生次數:需視<ElementType>宣告次數而定 允許父元素:<ElementType> <group> 允許子元素:無 <element type=“元素名稱” minOccurs=“0”|”1” maxOccurs=“1”|”*” />