XML DTD語法詳解

2021-09-22 13:20:07 字數 2734 閱讀 6135

第一篇是介紹格式正規的xml: 格式正規的xml:語法 屬性 實體 處理指令 樣式單 cdata節

第二篇介紹dtd,引入有效的xml的概念(符合語法規範並符合dtd要求),並介紹dtd的三種使用方法:有效的xml: dtd(文件型別定義)介紹與三種使用方式

乙個有效的xml文件必然是結構正規的,結構正規的xml文件不一定是有效的,即有效的是格式正規的乙個子集。

本文詳細介紹dtd,包括其對元素的定義,屬性的定義,以及實體的定義。

外部引用

內部定義

外部引用

內部定義

dtd中的修飾符號:

這部分符號可以聯絡正規表示式的符號來記憶。

屬性型別——cdata

比如:

定義了乙個屬性,是屬於title元素的,屬性名叫name,型別是字串(包括數字和中文),並且是乙個必須要有的屬性。

屬性型別——nmtoken/nmtokens

左邊圖中因為加了空格而出錯。

屬性型別——id

型別為id的屬性取值必須是唯一的。

從這個例子還可以看到同乙個元素可以一次定義多個屬性,多個屬性之間用空格分隔即可。

屬性型別——idref/idrefs

(「兒子」後面漏掉了乙個斜線)

屬性型別——enumerated

實現定義好一些值,屬性的值必須在所列出的值的範圍內。

元素的所有例項都必須有該屬性的值(not null)。

語法:

dtd示例:

xml示例:

#implied元素的例項中可以忽略該屬性(null)。

語法:

dtd示例:

xml示例:

沒有這個屬性也是對的。

#fixed value

元素例項中該屬性的值必須為指定的固定值。

語法:

dtd示例:

xml示例:

default value為屬性提供乙個預設的值。

語法:

dtd示例:

xml示例:

一般語法:

dtd示例:

xml示例:

外部實體:語法:

dtd示例:

xml示例:

與上面的區別就是加上了system關鍵字。

這樣就不是使用**的字串來代替,而是用**的文件本身內容。

實體型別

前面所講的都是普通實體,分為內部實體和外部實體。

所謂引數實體,該實體實際上不是在具體例項化文件中使用,而是在dtd文件內部被使用。

我們可以定義乙個實體,然後在dtd內部來引用它。

如下:

總結如下:普通實體:dtd中定義,xml中使用,使用格式:&名;引數實體:dtd中定義,定義的時候要用%,dtd中使用,使用格式:%名;普通實體和引數實體都分為內部實體外部實體兩種,外部實體定義需要加上system關鍵字,其內容是url所指向的外部檔案實際的內容。

如果不加system關鍵字,則為內部實體,表示實體指代內容為字串。

XML DTD 快速上手

目錄 xml簡介 xml語法 dtd簡介 dtd語法 案例1 xml 指可擴充套件標記語言 extensible markup language 2 xml 被設計用來傳輸和儲存資料,是通用的資料傳輸方式,相容性非常好,xml 於 1998 年 2 月 10 日成為 w3c 的推薦標準。3 xml和...

XMLdtd簡介及元素,屬性定義

dtd簡介 dtd的應用步驟 dtd的引入方式 dtd元素定義 dtd屬性定義 引用實體 建立字尾名為 dtd 的檔案 檢視xml中有多少個元素,有幾個元素在dtd中新增格式為 判斷元素是否為複雜元素 複雜元素 有子元素的元素 如果為複雜元素 則dtd中的變為 簡單元素 沒有子元素的元素 如果為簡單...

nginx Rewrite語法詳解

重寫中用到的指令 if 條件 設定條件,再進行重寫 set 設定變數 return 返回狀態碼 break 跳出rewrite rewrite 重寫 跳轉的話url都變了,變成重新http請求404.html,而內部rewrite,上下文沒變,就是說 fastcgi script name 仍然是 ...