今天我們來學習一下dtd的使用以及約束。
我們來說一下什麼是有效的xml文件?
內容結構嚴謹遵守自身標記,能通過自身的語法檢查,通過dtd驗證的xml文件稱為有效的xml文件。
dtdschema
兩者都可以用來約束xml文件,schema 比dtd強大同時難度也比dtd高一點,我們只要學習好dtd然後去看schema 是輕輕鬆鬆的。
(1)有且只有乙個根元素
(2)xml標籤大小寫正確區分
(3)正確使用結束標籤
(4)正確巢狀標籤
(5)使用了合法的標籤名(a-za-z0-9-_)
(6)定義有效的屬性
1.宣告dtd
格式:
<
!doctype 根元素名[
]>
2.元素定義的語法
語法格式<
!element 元素名稱 元素約束》
元素型別
解釋空元素
文字元素
混合元素
3.元素的限制元素
解釋,順序|
或+1~(次)
*0~n(次)
?0或1
(如果沒有)
(預設是一次)
4.屬性定義的語法
格式:
<
!attlist 元素名 屬性名 屬性型別/
>
語法
解釋id
唯一非空 ,類似於資料庫中的主鍵
(男|女) 「男」
舉枚,預設男的意思
cdata
純文字idref
屬性值引用已定義的id值(相當於主鍵引用外來鍵)
#required
必須 #implied
非必須
5.xml中的特殊符號符號
解釋& amp;
&(邏輯與)
& lt;
<(小於)
& gt;
>(大於)
& quot;
"(雙引號)
& apos;
'(單引號)
注:&:在xml裡面是乙個特殊字元:用來取變數的開始
;:在xml裡面是乙個特殊字元:用來取變數的結束
相當於:
amp=&
& amp;
6.外部dtd
dtd三種引入方式:
(1)引入外部的dtd檔案
< !doctype 根元素名稱 system 「dtd檔案路徑」>
(2)引入內部的dtd檔案
< !doctype 根元素名稱 [dtd**]>
(3)使用外部的dtd檔案(網路上的)
< !doctype 根元素名稱 public 「dtd名稱」 「dtd文件的url」>
2.1內部dtd
<
?xml version=
"1.0" encoding=
"utf-8"
?>
<
!-- 內部dtd --
>
<
!doctype persons [
<
!element
persons
(person*
)>
<
!element
person
(name,age,contact,br?
)>
<
!element
name
(#pcdata
)>
<
!element
age(#pcdata
)>
<
!element
contact
(phone|email)
>
<
!element
phone
(#pcdata
)>
<
!element br empty
>
<
!element
email
(#pcdata
)>
<
!attlist person
pid id #required
***(男|女)
"男"
qq cdata #implied
parent idref #implied
>
]>
"p1" ***=
"男" qq=
"aaa" parent=
"p2"
>
張小明<
/name>
10<
/age>
1234567
<
/phone>
<
/contact>
>
<
/person>
"p2"
>
張大明<
/name>
35<
/age>
@qq.com<
/email>
<
/contact>
<
/person>
<
/persons>
2.2引用外部dtd
<
?xml version=
"1.0" encoding=
"utf-8"
?>
<
!-- 外部dtd --
>
<
!doctype persons system "demo4.dtd"
>
"p1" ***=
"男" qq=
"aaa" parent=
"p2"
>
張小明<
/name>
10<
/age>
1234567
<
/phone>
<
/contact>
>
<
/person>
"p2"
>
張大明<
/name>
35<
/age>
@qq.com<
/email>
<
/contact>
<
/person>
<
/persons>
DTD快速入門
1.dtd宣告型別 內部的 doctype 宣告 xml version 1.0 doctype note element note to,from,heading,body element to pcdata element from pcdata element heading pcdata e...
DTD基礎入門
什麼是dtd約束 dtd與schema是用來效驗xml檔案dtd document type definition 文件型別定義,用來約束xml文件。規定xml文件中元素的名稱,子元素的名稱及順序,元素的屬性等等。什麼是良好的xml 1.有且只有乙個根元素 2.xml標籤大小寫正確區分 3.正確使用...
DTD 語法快速指南
a b c 和 d 是在下例中代表元素的變數。元素必須有正好乙個a 至少乙個b 由加號表示 零個或多個c 由星號表示 以及零個或乙個d 由問號表示 元素可能有a或b或c之一 元素不包含任何內容 元素可以包含在 dtd 中列出的任何元素 元素可能包含經過語法分析的字元資料或另乙個元素 element2...