XML基礎 (2)

精簡的記一下DTD 

Tips:

    DTD的所有關鍵字必須大寫

 

 

DTD有外部和內部兩種

1 內部DTD

        由 <! 開始 接着 是DOCTYPE 然後是在 [  ] 裏的標記聲明塊 最後由 > 結束

2 外部DTD

        用關鍵字 SYSTEM 或者PUBLIC 來指出DTD文件的位置

        SYSTEM 表示是私有DTD文件 使用SYSTEM時 格式如下

<! DOCTYPE 根元素的名字 SYSTEM "外部DTD的URL">

        URL可以是相對或者絕對路徑

        PUBLIC 是公共的DTD 並且還要包含一個DTD的名稱 格式如下:

<!DOCTYPE 根元素的名字 PUBLIC "DTD的名字" "外部DTD的URL">

 

DTD的結構

 

1 元素類型聲明

<!ELEMENT 元素名稱 元素內容說明>

        內容說明的形式:

        (1) #PCDATA         說明包含字符數據

        (2) 子元素

* 表示零或者多個 

表示或者  

, 表示按順序出現 

+ 表示有一個或者多個

表示零個或者一個

一個典型例子

<!DOCTYPE 簡歷 (名字,性別,年齡,(固話|手機),家庭住址?,興趣愛好*,教育經歷+,工作經驗*)>

 

        (3) 混合內容 前兩者的結合或者任意組合 

        (4) EMPTY  表示什麼都不含有的 空元素

        (5)  ANY 任何字符數據和子元素

實體聲明  用來在DTD或者XML中引用定義好的內容 避免重複帶來的麻煩 主要有一般實體和參數實體

比如xml中可能有一個公告 要在很多地方引用

<?xml version="1.0"?>
<!DOCTYPE 公告[

<!ELEMENT 公告(時間,內容)
>
<!ELEMENT 時間 (#PCDATA)>
<!ELEMENT 內容 (#PCDATA)>
<!ENTITY 時間 "1999年1月1日">
<!ENTITY 內容 "今天是新年的第一天">
]>


<公告>
    
<時間>&時間;</時間>
    
<內容>&內容;</內容>
</公告>

 

以上時一般實體 參數實體的不同就是 只能在DTD內部使用

<?xml version="1.0"?>
<!DOCTYPE 公告[

<!ELEMENT 公告(時間,內容)
>
<!ELEMENT 時間 (#PCDATA)>
<!ELEMENT 內容 (#PCDATA)>
<!ENTITY %時間 "1999年1月1日">
<!ENTITY 內容 "今天是新年的第一天  %時間;">
]>


<公告>
    
<時間>1999年1月1日</時間>
    
<內容>&內容;</內容>
</公告>

此外還有內部實體和外部實體之分

3 屬性表聲明

<! ATTLIST 元素名 屬性名 屬性類型 默認聲明>

        (1) 默認聲明 

               #REQUIRED  元素必須提供該屬性

               #IMPLIED  可以包含該屬性 也可以不包含該屬性

<!ATTLIST property name CDATA #REQUIRED>

               #FIXED+默認值 這個值是不能被修改的 如果沒有寫 系統會給出默認的值

               只有默認值 如果沒有寫就會給出默認值 如果寫了就是修改後的值

屬性類型含有以下值:

Value
Explanation
解釋

CDATA

The value is character data
字符數據值

(en1|en2|..)

The value must be one from an enumerated list
必須是來自列表中的一個值

ID

The value is a unique id
唯一獨立的id值

IDREF

The value is the id of another element
其它元素的id值

IDREFS

The value is a list of other ids
其它id的列表值

NMTOKEN

The value is a valid XML name
其值爲一個有效的XML名稱

NMTOKENS

The value is a list of valid XML names
其值爲一組有效的XML名稱列表值

ENTITY

The value is an entity
其值爲一個實體

ENTITIES

The value is a list of entities
其值爲一組實體的列表

NOTATION

The value is a name of a notation
其值爲一個符號的名稱

xml:

The value is a predefined xml value
預定的XML值

具體解釋一下

ID 必須以字母 下劃線 冒號中的一個開頭 可以包含字母 下劃線 數字等其他XML標準允許的字符 不能帶有空格 只能有一個 只能設置爲 #IMPLIED 或者#REQUIRED

IDREF 必須是已經有了的ID 就是XML中出現過了的

IDREFS  必須是已經存在的多個ID 以空格分隔

ENTITY 把外部的二進制數據連接到文檔

4 記號聲明  有些 聲音 圖像等 要用外部路徑或者程序時 用來指定一個外部程序

MIME類型

<!NOTATION gif SYSTEM "image/gif">

URI 路徑

<!NOTATION gif SYSTEM "iexplore.exe">
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章