1、DTD元素的定義
<?xml version="1.0" encoding="gb2312"?>
<!--*表示0或者多個 +表示至少要有一個 ?表示0個或者一個 内容模型 |表示隻能包含分隔開中的一個
,表示序列 下面是DTD元素的聲明 #PCDATA 表示字元資料 EMPTY表示 空元素 ANY 表示該元素可以包含
任意類型的字元資料和子元素,隻要符合xml規則就行。在實際使用時候應該避免使用ANY 明确的DTD 有助于我們了解文檔
<!ELEMENT employee (#PCDATA | name*)> 表示混合元素 就是employee中既可以包含子元素 也可以包含文本 但是必須是0個或者多個*
下面是DTD 元素定義
-->
<!DOCTYPE company[
<!ELEMENT company (employee)> //表示compant元素下包含 employee元素
<!ELEMENT employee (name,age,sex,salary,interest*)> //employee元素包含 name age sex salary interest元素 interest元素可以使 0個或者多個
<!ELEMENT salary (cash | credit_card)> //salary 方式有 cash 或者 credit_card中的一種
<!ELEMENT cash (#PCDATA)> //cash 包含的資料是字元一下雷同
<!ELEMENT credit_card (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT interest (#PCDATA)>
]>
<company>
<employee>
<name>zhangsan</name>
<age>15</age>
<sex>男</sex>
<salary>
<credit_card>2000</credit_card>
</salary>
<interest>basketball</interest>
<interest>football</interest>
<interest>volleyball</interest>
</employee>
</company>
2、DTD元素的定義 DTD屬性用來限制xml屬性
DTD元素采用
<!ATTLIST 元素名
屬性名1 CDATA #REUIRED //屬性必須設定
屬性名2 CDATA #IMPLIED //表示屬性可以設定也可以不設定 #FIXED表示值固定 不能設定
>
如下 :
<!ATTLIST employee
name CDATA #REQUIRED //name值必須被設定
sex CDATA "女" //使用預設值 可以設定或者不設定
age CDATA #FIXED "15" //值是固定的不可以設定
interest CDATA #IMPLIED //愛好可有可無
元素的類型 :我們知道CDATA表示 字元型那麼 ENUMRATED 枚舉類型用什麼表示呢?
(a | b | c | d) 這就表示枚舉類型 。
<!ATTLIST emploree
name (a | b | c | d) "a"
>
下面是一個應用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE employee[
<!ELEMENT employee (name,salary)>
<!ATTLIST salary way (check|cash) #REQUIRED>
<!ELEMENT salary (#PCDATA)>
]>
<employee>
<name>xiaowang</name>
<salary way="cash"></salary>
</employee>
ID 這個類型用于 唯一的辨別xml中的某個元素,這樣的屬性 每個元素的屬性 都不恩能夠相同 。
3、DTD的實體引用 就是像html中的轉義字元一樣使用 ,隻不過這個實體引用時我們自己定義的 ,
實體是用于定義引用普通文本或特殊字元的快捷方式的變量。
實體引用是對實體的引用。
實體可在内部或外部進行聲明。
DTD 例子:
XML 例子:
注釋: 一個實體由三部分構成: 一個和号 (&), 一個實體名稱, 以及一個分号 (;)。