元素的名稱是 "img"。屬性的名稱是 "src"。屬性的值是 "computer.gif"並且可以用樣式來控制大小等顯示效果。由於元素本身為空,它被一個 " /" 關閉。
實體
實體是用來定義普通文本的變數。實體引用是對實體的引用。
大多數同學都了解這個
HTML 實體引用:" "。這個“無折行空格”實體在 HTML 中被用於在某個文檔中插入一個額外的空格。
當文檔被 XML 解析器解析時,實體就會被展開。
PCDATA
PCDATA 的意思是被解析的字元數據(parsed character data)。
可把字元數據想象為 XML 元素的開始標籤與結束標籤之間的文本。
PCDATA是會被解析器解析的文本。這些文本將被解析器檢查實體以及標記。
文本中的標籤會被當作標記來處理,而實體會被展開。
不過,被解析的字元數據不應當包含任何 &、< 或者 > 字元;需要使用 & 、< 以及 > 實體來分別替換它們。
CDATA
CDATA 的意思是字元數據(character data)。
CDATA 是不會被解析器解析的文本。在這些文本中的標籤不會被當作標記來對待,其中的實體也不會被展開。
在一個 DTD 中,元素通過元素聲明來進行聲明。
聲明一個元素
在 DTD 中,XML 元素通過元素聲明來進行聲明。元素聲明使用下面的語法:
或者
空元素
空元素通過類別關鍵詞EMPTY進行聲明:
只有 PCDATA 的元素
只有 PCDATA 的元素通過圓括弧中的 #PCDATA 進行聲明:
帶有任何內容的元素
通過類別關鍵詞 ANY 聲明的元素,可包含任何可解析數據的組合:
帶有子元素(序列)的元素
帶有一個或多個子元素的元素通過圓括弧中的子元素名進行聲明:
或者
相同的元素至少出現一次
語法格式為:
例:
例中的+是指子元素message必須在被包含的note元素里出現一次或者多次。
同元素不出現或者多次出現
語法格式為:
例:
例中的*是指子元素message能夠在被包含的note元素里不出現或者出現多次。
同元素不出現或者出現一次
語法格式為:
例:
例中的?是指子元素message能夠在被包含的note元素里不出現或者出現一次。
在 DTD 中,屬性通過 ATTLIST 聲明來進行聲明。
聲明屬性
屬性聲明擁使用下列語法:
以下是屬性類型的選項:
類型描述
CDATA 值為字元數據 (character data)
(en1|en2|..) 此值是枚舉列表中的一個值
ID 值只有一個id
IDREF 值為另外一個元素的 id
IDREFS 值為其他 id 的列表
NMTOKEN值為合法的 XML 名稱
NMTOKENS 值為合法的 XML 名稱的列表
ENTITY 值是一個實體
ENTITIES 值是一個實體列表
NOTATION 此值是符號的名稱
xml: 值是一個預定義的 XML 值
默認值參數可使用下列值:
值 解釋
值 屬性的默認值
#REQUIRED 屬性值是必需的
#IMPLIED 屬性不是必需的
#FIXED value 屬性值是固定的
規定一個默認的屬性值
DTD:
合法的 XML:
在上面的例子中,"square" 被定義為帶有 CDATA 類型的 "width" 屬性的空元素。如果寬度沒有被設定,其默認值為0。
實體是用於定義引用普通文本或特殊字元的快捷方式的變數。
實體引用是對實體的引用。
實體可在內部或外部進行聲明。
一個內部實體聲明
語法:
DTD 例子:
XML 例子:
&writer;©right;註釋: 一個實體由三部分構成: 一個和號 (&), 一個實體名稱, 以及一個分號 (;)。
一個外部實體聲明
語法:
DTD 例子:
XML 例子:
每一個XML文檔都可攜帶一個DTD,用來對該文檔格式進行描述,測試該文檔是否為有效的XML文檔。既然DTD有外部和內部之分,當然就可以為某個獨立的團體定義一個公用的外部DTD,那麼多個XML文檔就都可以共享使用該DTD,使得數據交換更為有效。甚至在某些文檔中還可以使內部DTD和外部DTD相結合。在應用程序中也可以用某個DTD來檢測接收到的數據是否符合某個標準。
對於XML文檔而言,雖然DTD不是必須的,但它為文檔的編製帶來了方便。加強了文檔標記內參數的一致性,使XML語法分析器能夠確認文檔。如果不使用DTD來對XML文檔進行定義,那麼XML語法分析器將無法對該文檔進行確認。
元素的定義
根元素的聲明
每個XML文檔都只有一個根元素,其它的子元素都包含在該根元素中。因此在DTD中對根元素的聲明是必不可少的。根元素聲明的一般形式如下:
]>
DOCTYPE是“document type”(文檔類型)的簡寫,DOCTYPE聲明必須放在文檔最頂部,在所有代碼和標識之上,DOCTYPE聲明是必不可少的關鍵組成部分。DTD語法要求DOCTYPE必須要大寫,而且DOCTYPE和元素之間必須要有空格隔開。如在以上代碼中DOCTYPE和根元素root之間要有空格隔開。
利用DTD驗證有效性的解析器,就能夠立即對文檔的完整性進行可靠的檢查。DTD雖然比較實用,但DTD也有不少的缺陷。
DTD有自己的特殊語法,其本身不是XML文檔;
DTD只提供了有限的數據類型,用戶無法自定義類型;
DTD不支持域名機制。
Day to day business contact
日常業務聯繫