xml学习4-dtd

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;&copyright;</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;&copyright;</author>

你可能感兴趣的:(xml)