XML學習筆記(二)-- DTD格式規范


標簽(空格分隔): 學習筆記


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, PCDATA5中類型。

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中預定義的常規實體引用"&lt;" "&gt;" "&amp;" "&apos;" "quot;" 分別對應着 "<" ">" "&" "'" """.

普通內部實體

<!ELEMENT Entity_Name Entity_Value>

普通外部實體

<!ELEMENT Entity_Name SYSTEM Entity_URL>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM