XML入門教程:元素聲明-XML/XSLT
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2009-04-02 20:58:52 作者:佚名
我要評(píng)論

有效文檔中使用的每個(gè)元素都必須在文檔的DTD中用元素聲明進(jìn)行聲明。element_name可是任何合法的XML名稱,content_model(內(nèi)容模型)指定元素可以或必須包含的子元素以及子元素的順序。下面具體介紹內(nèi)容模型的內(nèi)容。
上節(jié)文檔類型
有效文檔中使用的每個(gè)元素都必須在文檔的DTD中用元素聲明進(jìn)行聲明。element_name可是任何合法的XML名稱,content_model(內(nèi)容模型)指定元素可以或必須包含的子元素以及子元素的順序。下面具體介紹內(nèi)容模型的內(nèi)容。
上節(jié)文檔類型聲明中的每一項(xiàng)都是元素聲明,定義了每個(gè)元素的約束。元素聲明的格式為:
<!ELEMENT element_name (content_model)>
有效文檔中使用的每個(gè)元素都必須在文檔的DTD中用元素聲明進(jìn)行聲明。element_name可是任何合法的XML名稱,content_model(內(nèi)容模型)指定元素可以或必須包含的子元素以及子元素的順序。下面具體介紹內(nèi)容模型的內(nèi)容。
本文由腳本之家(http://www.dbjr.com.cn)整理發(fā)布!轉(zhuǎn)載請(qǐng)注明出處,謝謝!
#PCDATA,規(guī)定元素只包含已析的字符數(shù)據(jù)。下面聲明指出一個(gè)name元素可以包含文本,但不能劃分為獨(dú)立的area_code、number和extension元素:
<!ELEMENT name (#PCDATA)>
子元素,可指明元素的子元素。下面聲明表示name元素必須包含且只包含一個(gè)desc元素。
<!ELEMENT name (desc)>
也可用逗號(hào)為分隔符,指明多個(gè)子元素。并且子元素出現(xiàn)的次序必須按定義時(shí)的順序。如:
<!ELEMENT name (id,desc)>
name元素的id子元素必須在desc子元素前面,否則驗(yàn)證會(huì)出錯(cuò),該文檔不是一個(gè)有效的XML文檔。
下面這個(gè)文檔是有效的 <name> <id>1</id> <desc>dtd test</desc> </name> 下面這個(gè)文檔是無效的,順序顛倒了 <name> <desc>dtd test</desc> <id>1</id> </name> 下面的文檔也是無效的,有多余的元素 <name> <id>1</id> <desc>dtd test</desc> <date>2005/01/31</date> </name>
子元素的個(gè)數(shù),我們可通過正則表達(dá)式來規(guī)定子元素的個(gè)數(shù)。
?,允許零個(gè)或一個(gè)該元素
*,允許零個(gè)或多個(gè)該元素
,允許一個(gè)或多個(gè)該元素
下面我們可利用這些符號(hào)規(guī)定id子元素必須出現(xiàn),且只能出現(xiàn)一次,而desc子元素可選。本文由腳本之家(http://www.dbjr.com.cn)整理發(fā)布!轉(zhuǎn)載請(qǐng)注明出處,謝謝!
<!ELEMENT name (id,desc*)>
根據(jù)上面的聲明,下面的name元素都是有效的。
<name> <id>1</id> <desc>dtd test</desc> </name> <name> <id>2</id> </name> <name> <id>3</id> <desc>dtd test</desc> <desc>another test</desc> </name>
可選項(xiàng)(|),選項(xiàng)是一個(gè)參數(shù)列表,每個(gè)參數(shù)間用“|”分隔,代表能且只能選一個(gè)子元素。
<!ELEMENT choice (good | bad)>
上例的choice元素可選一個(gè)good子元素,或bad子元素,且只能從選一個(gè)??蛇x的參數(shù)列可以多項(xiàng),不限于兩項(xiàng)。如:
<!ELEMENT choice (one | two | three | four)>
小括號(hào),可用小括號(hào)把選項(xiàng)括起來,以表達(dá)更豐富的意思,如我們想表示choice元素必須包含一個(gè)good子元素,并且必須包含ok子元素或bad子元素的一個(gè)。
<!ELEMENT choice (good,(ok|bad))>
混合內(nèi)容,在一些文檔中,一個(gè)元素可能既包含子元素,也包含字符串,這些內(nèi)容叫混合內(nèi)容??捎靡韵路绞奖硎荆?
<!EMEMENT description (#PCDATA | term)* )>
該聲明表示description元素可包含已析的字符串和term子元素,且允許出現(xiàn)零次或多次,如:
<description> this is a <term>dtd</term> test. </description>
#PCDATA必須在第一位,可選的子元素可任意多項(xiàng)。
空元素,某些元素不用包含任何內(nèi)容,稱之為空元素。寫成以/>結(jié)束的獨(dú)立標(biāo)簽。
<!ELEMENT image EMPTY>
示例:
<image src="http://www.xml.com/dtd.jpg" />
ANY,允許元素內(nèi)包含任意內(nèi)容。該選項(xiàng)在dtd測(cè)試時(shí)很有用,在生產(chǎn)系統(tǒng)中盡量不要使用。
<!ELEMENT page ANY>
相關(guān)文章
MIME類型中application/xml與text/xml的區(qū)別介紹
這篇文章介紹了MIME類型中application/xml與text/xml的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-28- XML中擁有Schema特性,能夠比DTD更加強(qiáng)大地引入元素結(jié)構(gòu),下面我們就來詳解XML中的模式Schema的概念及作用和用法,需要的朋友可以參考下2021-11-30
- 這篇文章主要介紹了XML基本概念入門學(xué)習(xí)指南,包括其與HTML的關(guān)系以及元素和特殊標(biāo)簽等,需要的朋友可以參考下2016-06-24
- XML標(biāo)簽的自定義功能非常強(qiáng)大,比如本文將要講解的DTD(Document Type Definition)就帶給人們一種面向?qū)ο蟀愕母杏X,well,下面就來看一下XML中的DTD文件類型定義完全解析2016-06-24
- 這篇文章主要介紹了XML文件的閱讀與編輯,最常用的工具當(dāng)然還是瀏覽器中的控制臺(tái)與源代碼查看,需要的朋友可以參考下2016-02-16
- 這篇文章主要介紹了XML的命名空間,包括命名空間的聲明等XML入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-02-16
解析XML中的樹形結(jié)構(gòu)與DOM文檔對(duì)象模型
這篇文章主要介紹了XML中的樹形結(jié)構(gòu)與DOM文檔對(duì)象模型,文中舉了JavaScript解析DOM對(duì)象的例子,需要的朋友可以參考下2016-02-15- 這篇文章主要介紹了詳解XML編程中的模式定義XSD,講解了如何在XML文檔中聲明模式及定義類型等內(nèi)容,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML中的DTD文檔類型定義,是XML入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML代碼編寫的編碼與驗(yàn)證問題,與HTML類似,XML文件的編碼也能在序言部分被指定,需要的朋友可以參考下2016-02-15