XML約束之DTD

XML約束:DTD

         每一個XML文檔都可攜帶一個DTD,用來對該文檔格式進行描述,測試該文檔是否爲有效的XML文檔。

例:

1、編寫數據xml --- books.xml


2、編寫dtd文件---books.dtd

語法:

爲文檔每一個元素(不同名稱) 添加<!ELEMENT >標記
語法 :<!ELEMENT 元素名稱 子元素>
元素內部爲文本,則<!ELEMENT 元素名稱 子元素>裏面的子元素寫( #PCDATA)


3、將xml文件與dtd文件關聯起來


假若xml文件中某一標記缺失,就會出錯



DTD與xml關聯三種方式

1、內部DTD ----- 語法 <!DOCTYPE 根元素 []>       (在中括號內填寫DTD內容)


2、外部DTD (引用本地DTD) ----- 語法 <!DOCTYPE 根元素 SYSTEM "本地DTD文件位置" >

3、公共DTD (引用網絡上DTD)  <!DOCTYPE 文檔根結點 PUBLIC "DTD名稱" "DTD文件的URL">

例如:<!DOCTYPE web-app PUBLIC "-//Sun Mircrosystems.Inc.//DTD Web Application 2.3//EN" "http://java.sun.com./dtd/web-app_2_3_dtd"> 

   其中,"web-app "是其根元素,“-//Sun Mircrosystems.Inc.//DTD Web Application 2.3//EN”是其DTD名稱,“http://java.sun.com./dtd/web-app_2_3_dtd”是其URL


DTD語法細節:

元素(ELEMENT)定義
' () '   
子元素、分組
' , '     代表子元素順序
' + * ? ' ---- 正則表達式 ' + ' 表示1到多個 、' * '表示任意個(0到多個)、 ' ? '表示 0或者1個
' | '      多選一

特殊元素內容:文本類型內容 #PCDATA  子元素內容如果爲空 EMPTY

例:<!ELEMENT name EMPTY> 表示標記<name>裏面沒有內容,空格、回車也沒有

屬性(ATTLIST)定義
語法:<!ATTLIST 元素名稱 屬性列表 >
屬性列表: 
屬性名稱 類型 約束
屬性名稱 類型 約束
屬性名稱 類型 約束
屬性名稱 類型 約束

屬性類型


約束類型


例如:


實體(ENTITY)定義
對於xml數據內容重複,可以抽取實體
語法:<!ENTITY 實體名稱 "實體內容" >

引用實體方式:&實體名稱;  (不要忘了分號)

例如:




發佈了77 篇原創文章 · 獲贊 40 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章