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)>
<!ELEMENT name (#PCDATA)>
]>
<employee>
<name>xiaowang</name>
<salary way="cash"></salary>
</employee>
ID 这个类型用于 唯一的标识xml中的某个元素,这样的属性 每个元素的属性 都不恩能够相同 。
3、DTD的实体引用 就是像html中的转义字符一样使用 ,只不过这个实体引用时我们自己定义的 ,
实体是用于定义引用普通文本或特殊字符的快捷方式的变量。
实体引用是对实体的引用。
实体可在内部或外部进行声明。
一个内部实体声明
语法:
<!ENTITY 实体名称 "实体的值">
例子:
DTD 例子:
<!ENTITY writer "Bill Gates"> <!ENTITY copyright "Copyright W3School.com.cn">
XML 例子:
<author>&writer;©right;</author>
注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。
一个外部实体声明
语法:
<!ENTITY 实体名称 SYSTEM "URI/URL">
例子:
DTD 例子:
<!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> <!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">
XML 例子:
<author>&writer;©right;</author>