DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> 第10章 DTDs中的屬性聲明
第10章 DTDs中的屬性聲明
編輯:XML基礎     

XML教程

 

一些XML元素具有屬性。屬性包含應用程序使用的信息。屬性僅在程序對元素進行讀、寫操作時,提供元素的額外信息(如ID號等),對於人類讀、寫元素來說是毫無意義的。在本章中學習各種屬性類型和如何在DTD中聲明屬性。

本章內容如下:

* 什麼是屬性?

* 如何在DTD中聲明屬性

* 如何聲明多個屬性

* 如何指定屬性的缺省值

* 屬性類型

* 預定義屬性

* 基於屬性的棒球比賽統計數據的DTD

10.1 什麼是屬性?

在第3章曾經討論過開始標記和空標記可包含由等號"="分割開的成對的屬性名和屬性值。例如:

<GREETING LANGUAGE= "English">

Hello XML!

<MOVIE SOURCE= "WavingHand.mov" />

</GREETING>

上述例子中,GREETING元素具有LANGUAGE屬性,其屬性值為ENGLISH。MOVIE元素具有SOURCE屬性,其屬性值為WavingHand.mov。GREETING元素內容為Hello XML!。書寫內容的語言對內容本身來說是一個有用的信息,可是語言不是內容的一部分。

與此相似,MOVIE元素內容為保存在WavingHand.mov文件中的二進制數據。盡管文件名告訴我們到何處可找到元素內容,但它本身不是元素內容。再次強調,屬性包含有關元素內容信息,而不是元素內容本身。

元素可具有多個屬性,例如:

<RECTANGLE WIDTH= "30" HEIGHT= "45" />

<SCRIPT LANGUAGE= "javascript" ENCODING= "8859_1" >...</SCRIPT>

上例中,SCRIPT元素屬性LANGUAGE的值為javascript,SCRIPT元素屬性ENCODING的值為8859_1;RECTANGLE元素屬性WIDTH的值為30;RECT元素屬性HEIGHT的值為45。這些屬性值均為字符串數據,不是數字型數據。

結束標記不能帶屬性,下例視為非法:

<SCRIPT>...</SCRIPT LANGUAGE= "javascript" ENCODING= "8859_1" >

10.2 在DTD中聲明屬性

與元素和實體相似,為保持文檔的合法性,需要在文檔的DTD中聲明屬性。<!ATTLIST>標記用於聲明屬性,其形式如下:

<!ATTLIST Element_name Attribute_name Type Default_value>

Element_name為擁有該屬性的元素名。Attribute_name為屬性名,Type為表10-1列出的10種有效屬性類型的一種。最常用的屬性類型為CDATA。最後,若未規定屬性值,則屬性值為Default_value。

例如,研究下列元素:

<GREETING LANGUAGE= "Spanish">

Hola!

</GREETING>

在DTD中,可按如下格式聲明該元素:

<!ELEMENT GREETING (#PCDATA)>

<!ATTLIST GREETING LANGUAGE CDATA "English">

<!ELEMENT>標記簡單地說明greeting元素包含可析字符數據,這裡沒什麼新內容。<!ATTLIST>標記表明GREETING元素擁有LANGUAGE屬性,其值為CDATA類型,本質上與元素內容的#PCDATA相同。若所看見的GREETING標記中沒有LANGUAGE屬性,則LANGUAGE屬性值為缺省

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved