23XML DTD

1 #PCDATA (Parsed Character Data),可解析的字符数据。


DTD文档与XML文档是类与对象的关系

DTD是抽象的定义

XML是具体的内容


第一种  内部DTD文档

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE student[

<!ELEMENT student (id,name,score)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT score (#PCDATA)>
]>


<student>
<id>1</id>
<name>sx</name>
<score>100</score>
</student>
第二种  外部DTD文档  便于DTD文档复用
<?xml version="1.0" encoding="UTF-8"?>
	<!ELEMENT student (id, name, score)>
	<!ELEMENT id (#PCDATA)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT score (#PCDATA)>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE student SYSTEM "myfirst.dtd">
<student>
	<id>1</id>
	<name>sx</name>
	<score>100</score>
</student>

2 DTD中元素的类型

dtd中ELEMENT元素的类型有 EMPTY、ANY、#PCDATA等

(1)EMPTY类型规定了元素不能有值但可以有属性,不能包括文本。
(2)ANY类型则规定一个元素下面可以包括子元素,文本,属性。
将根元素设置为ANY后 子元素出现的次数和顺序将不受限制。

(3)#PCDATA则规定元素下面不能包括子元素,且元素的值是字符串。


3DTD元素修饰符号

23XML DTD_第1张图片


4 属性的定义

23XML DTD_第2张图片

属性类型

(1)CDATA 字符创

(2)NMTOKEN CDATA的一个子集 ,表示属性值必须是英文字母,数字,句号,破折号,下划线或冒号,属性值不能有空格

(3)ID 表示属性值是唯一的

(4)IDREF 指向文档中其他地方声明的ID类型的值

属性特点

(1)#REQUIRED 必须有的属性值

(2)#IMPLIED可选的,可有可无

(3)#FIXED value    属性值必须为指定的固定值,value

(4)#Default value   为属性提供一个默认值

2关于普通实体与参数实体

23XML DTD_第3张图片

1) 普通实体是在dtd中定义,xml中使用,使用的时候格式为:&address;
2) 参数实体是在dtd中定义,dtd中使用,定义的时候使用%,使用的时候也需要使用%, %address;
3) 外部普通实体的定义方式是:
<!ENTITY address SYSTEM “http://www.shengsiyuan.com/xml.xml”>
表示使用http://www.shengsiyuan.com/xml.xml网址的内容来替换掉address,而不是使用http://www.shengsiyuan.com/xml.xml字符串本身来替换掉address
4)外部参数实体:

<!ENTITY % address SYSTEM “http://www.shengsiyuan.com/xml.xml”>,使用的时候:%address;




命名空间

避免重名

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE 学生名册 SYSTEM "dtd1.dtd">
<S:学生名册   xmlns:S="http://www.dldd.com">
	<学生 学号="t1">
		<姓名>张三</姓名>
		<性别>男</性别>
		<年龄>20</年龄>
	</学生>
	<学生 学号="t2">
		<姓名>李四</姓名>
		<性别>女</性别>
		<年龄>19</年龄>
	</学生>
	<学生 学号="t3">
		<姓名>王二</姓名>
		<性别>男</性别>
		<年龄>21</年龄>
	</学生>
</S:学生名册>









你可能感兴趣的:(23XML DTD)