DTD與XSD的區別
DTD(Document Type Definition)即文件型別定義,是一種XML約束模式語言,是XML檔案的驗證機制
一個DTD文件包含:(1)元素的定義規則;(2)元素間關係的定義規則;(3)元素可使用的屬性,可使用的實體或符號規則
新建一個.dtd檔案:
<!ELEMENT 班級 (學生+)>
<!ELEMENT 學生 (名字,年齡,介紹)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年齡 (#PCDATA)>
<!ELEMENT 介紹 (#PCDATA)>
DTD基本語法:<!ELEMENT NAME CONTENT>
其中:
- ELEMENT是關鍵字,是不能修改的
- NAME表示元素名稱
- CONTENT是元素型別,必須要大寫!CONTENT的內容有三種寫法:
使用DTD驗證模式需要在XML檔案的頭部宣告
<?xml version="1.0" encoding="utf-8"?>
<!-- 引入dtd檔案,約束這個xml -->
<!DOCTYPE 班級 SYSTEM "myclass.dtd">
<班級>
<學生>
<名字>周小星</名字>
<年齡>23</年齡>
<介紹>學習刻苦</介紹>
</學生>
</班級>
<!DOCTYPE 根元素 SYSTEM/PUBLIC "DTD檔案路徑"> SYSTEM表示本地 PUBLC 表示網路
DTD使用是非xml語法編寫,不支援擴充套件,不支援名稱空間,只提供非常有限的資料型別
XML Schemal語言就是XSD,XML Schema描述了XML文件的結構,可以用一個指定的XML Schema來驗證某個XML
XML Schema的優點:
1) XML Schema基於XML,沒有專門的語法
2) XML Schema可以象其他XML檔案一樣解析和處理
3) XML Schema比DTD提供了更豐富的資料型別.
4) XML Schema提供可擴充的資料模型。
5) XML Schema支援綜合名稱空間
6) XML Schema支援屬性組
xsd引用
<?xml version="1.0"?>
<note xmlns="http://www.w3school.com.cn" //預設名稱空間
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" //可用的XML SCHEMAL例項名稱空間 --->可以使用schemaLocation
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> //schemaLacation兩個屬性:需要使用的名稱空間 ;供名稱空間使用的 XML schema 的位置
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
xsd定義
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"//在schema中用到的資料型別和元素來自此名稱空間,並且來自此名稱空間的元素以xs開頭 targetNamespace="http://www.w3school.com.cn"//此shema定義的元素(note等)來自此名稱空間 xmlns="http://www.w3school.com.cn"//預設的名稱空間 elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>參考於http://www.w3school.com.cn/schema