標簽(空格分隔): 學習筆記
XML的一個主要目的是允許應用程序之間自由交換結構化的數據,因此要求XML文檔具有一致的結構、業務邏輯和規則。可以定義一種模式來定義XML文檔的結構,並借此驗證XML文檔的有效性。
定義XML文檔結構有兩種解決方案:一種是采用文檔類型定義DTD;另一種是采用XML Schema。
DTD的基本結構
DTD是用來規范XML文件的格式,必須出現在頭文件中,一遍XML校驗器在一開始便可以得到XML文件的格式定義。DTD是一套關於標記符的語法規則,它定義了可用在文檔中的元素、屬性和實體,以及這些內容之間的關系。
DTD的基本結構
DTD語法格式如下:
<!DOCTYPE 根元素名稱[
<!ELEMENT 子元素名稱(#PCDATA)>
]>
參數說明:
<!DOCTYPE
:文檔類型聲明的起始定界符;根元素名稱[
:一個XML文檔只有一個根元素,如果XML文檔使用DTD,那么根元素的名稱就在這里指定;<!ELEMENT子元素名稱(#PCDATA)>
:用來定義出現在文檔中的元素;]>
:文檔類型聲明的結束界定符。
DTD中的定義元素
包括元素名稱、構成元素基本類型和元素內容類型。
聲明元素類型
語法如下:
<!ELEMENT 元素名 元素內容>
- ELEMENT:是關鍵字,表示對元素類型進行聲明;
- 元素名:為當前元素指定元素名稱;
- 元素內容:元素后面的內容用來指定元素的內容類型,分為
EMPTY
,子元素類型
,混合型
,ANY
,PCDATA
5中類型。
DTD中的元素限定符
元素限定符用於在DTD中規定子元素出現的順序和次數。
常用的元素限定符有:
()
- 用來給元素分組;|
- 在列出的元素中選擇一個;+
- 可出的元素至少出現1次(1或多次);*
- 列出的元素允許出現0次到任意多次(0或多次);?
- 列出的元素出現0次或1次,;,
- 列出的元素必須按照指定的順序出現。
DTD中的定義屬性
元素屬性包括屬性名稱、變量類型、預定義屬性等。
屬性的聲明
<!ATTLIST Element_name
Attribute_name TYPE [added_declare]
Attribute_name TYPE [added_declare]
....
>
屬性的類型
在DTD中聲明屬性的語法格式時屬性類型是屬性聲明中所必須的,常用的屬性類型有:
CDATA
: 字符數據;ID
: 該屬性值在XML文檔中是唯一的;IDREF
: 該屬性值參考了XML文檔中的另一個屬性;ENTITY
: 表示該屬性的設定值是一個外部實體,如一個圖片文件;NMTOKEN
: 屬性值只能由數字、字母、下划線、連字符等符號構成;NOTATION
: 屬性值是在DTD中聲明過的注解名稱;Enumerat
: 列出能夠賦予該屬性的各種值的列表,只能從中選擇屬性值。
在DTD中聲明XML的元素必須是字符串類型時,應該使用
#PCDATA
(在ELEMENT標簽中使用);聲明屬性的屬性值必須是字符串時,應該使用CDATA
(在ATTLIST標簽中使用)。
DTD中的試題
XML中預定義的常規實體引用"<" ">" "&" "'" "quot;"
分別對應着 "<" ">" "&" "'" """
.
普通內部實體
<!ELEMENT Entity_Name Entity_Value>
普通外部實體
<!ELEMENT Entity_Name SYSTEM Entity_URL>