DTD可以是一個完全獨立的文件,也可以在XML文件中直接設定。所以,DTD分為外部DTD(在XML文件中調用另外已經編輯好的DTD)和內部DTD(在XML文件中直接設定DTD)兩種。比如,有幾十家相互聯系的、合作伙伴關系的公司、廠商,他們相互之間的交換電子文檔都是用XML文檔。那么我們可以將這些XML文檔的DTD放在某個地方,讓所有交換的XML文檔都使用此DTD,這是最方便的做法,同時也適用于公司內部的XML文件使用。
內部DTD
內部DTD是在XML文件的文件序言區域中定義的。語法:
以下為引用的內容:
〈!DOCTYPE element-name[........
]〉
〈!DOCTYPE :表示開始設定DTD,注意DOCUTYPE是大寫。
Element-name :指定此DTD的根元素的名稱,一個XML文件只能有一個根元素。注意,如果 XML文件使用了DTD,那么文件中的根元素就在這里指定。
[.........]〉 :在[ ]標記里面定義XML文件使用元素,然后用〉結束DTD的定義。
下面,我們來看一下怎樣給XML文件定義DTD,請見例1。
例1中的DTD定義區可以看作是一個DTD定義的大概框架,為其他XML文件定義DTD,結構和例1的DTD差不多,只是可能需要添加、刪除或者更改一些東西而已。在DTD定義的中間是元素設定,這是一個DTD的最主要部分,其主要語法如下:
〈!ELEMENT element-name element-definition〉
〈!ELEMENT:表示開始元素設置,注意此處ELEMENT關鍵字是大寫。
element-name:表示要設置的元素的名稱。
element-definition:指明要對此元素進行怎樣的定義,就是說〈元素〉...〈/元素〉之間能夠包含什么內容,是其他元素還是一般性的文字。
在例1中,大家可以看到,〈!ELEMENT 參考資料 (書籍)〉這個元素設定是聲明了“參考資料”這個元素,并且它是作為“書籍”這個元素的父元素。〈!ELEMENT 書籍 (名稱,作者,價格)〉這個元素設定聲明了“書籍”這個元素,并且它是作為“名稱”、“作者”、“價格”這三個元素的父元素。而〈!ELEMENT 名稱 (#PCDATA)〉這個元素設定聲明了“名稱”這個元素,但是此元素僅僅包含一般文字,是基本元素,這是由#PCDATA關鍵字定義的。
在元素設置中,如果元素包含多個子元素,如:〈!ELEMENT 書籍 (名稱,作者,價格)〉這種含多個子元素的聲明,那么“名稱”、“作者”、“價格”這些標記在XML文件中必須以上面排列的順序出現,每個標記必須而且只能夠出現一次。如果在設定元素時,按照〈!ELEMENT 書籍ANY〉,這樣在元素下就可以包含任意被設定過的元素,出現的次數和順序也不受限制,并且在該元素下,除了可以包含子元素以外,還能夠包含一般的文字。有時候,在XML文件中,一個標記可能多次出現(或者不出現),那么我們除了在它們的父元素中用ANY關鍵字之外,還可以在元素的旁邊加上特定的符號來控制標記出現的次數。這些符號見表1。
表1
符號 代表標記出現的次數
? 不出現或只出現一次
* 不出現或可出現多次
+ 必須出現一次以上
無符號 只能出現一次
例如:〈!ELEMENT 參考資料(書籍 主站蜘蛛池模板: av在线直播观看 | 4p嗯啊巨肉寝室调教男男视频 | 一区二区三区视频在线 | 欧美特级黄色 | 热99re久久免费视精品频软件 | 国产美女三级做爰 | 成熟女人特级毛片www免费 | 亚洲视频综合网 | 久草在线公开视频 | 欧美福利视频一区二区 | 中文字幕精品一二三四五六七八 | 色中色激情影院 | 黑人日比视频 | 久久久久一区 | 毛片网站网址 | 91 免费视频| h视频免费看 | 国产亚洲精品久久久久婷婷瑜伽 | 久久久一二三 | 秋霞a级毛片在线看 | av免费在线观 | 亚洲第一精品在线 | 羞羞的视频在线观看 | 免费午夜视频在线观看 | 激情小说激情图片激情电影 | 黄色片网站在线看 | 日日摸夜夜添夜夜添牛牛 | 日本欧美一区二区三区在线观看 | 天天操天天碰 | 欧美在线a | 91色综合综合热五月激情 | h色视频网站 | 免费黄色小网站 | 欧美日本91精品久久久久 | 日韩高清影视 | 免费国产不卡午夜福在线 | 92看片淫黄大片一级 | 成人毛片免费视频 | 国产呦在线观看视频 | 久久影片 | 欧美成人福利 |