资料下载网
首页 计算机 考试教辅
xml中DTD的深入解析教程 pdf电子书免费下载,百度云
首页 > 计算机 > 数据库技术 > xml中DTD的深入解析教程 pdf电子书免费下载,百度云

《xml中DTD的深入解析教程》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/1Cq6BEUHXfAWeYl1nyTx2hQ
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ae_123676_do_xmlZDTDDSRJXJC.zip

 


xml中DTD的深入解析教程

作者:empty

出版社:empty

《xml中DTD的深入解析教程》介绍

1xml概述实际上就是数据

1.1使用xml的原因

为了弥补html的缺点

(1)标签是规定好的,用户不能够自定义 table>认识 table1>不认识

(2)显示的样式和数据是绑定在一起,数据没有办法复用。

(3)标签是没有什么直接含义的 td>本身是没有什么含义的

(4)浏览器对其的解析不一致。

1.2用途

1.2.1可以作为一种通信标准(ajax,xml,json)

由于$message=”hello world”;表现的内容很少 所以xml可以作为通信标准让他的表述更加清楚。

而且标签sender/geter等都有了含义,让人知道里面的内容是什么

例如下面的例子

可以用下面的XML语言进行描述

1.2.2作为配置文件在PHP中使用

如果我们在php中链接数据库

?php

$conn=mysql_coonect(“localhost”,”bashoi123”,”q53230211”);

//php可以操作xml文件

?>

假设有配置文件

dbinfo>

host>123,11,11,23 /host>

user>bashoi123 /user>

type>mysql /type>

password>q53230211 /password>

/dbinfo>

1.2.3可以当小型数据库

程序去操作数据库是很慢的,实际上没有直接去操作文件快。在用mysql的时候都是经过了dbms去操作文件

如果有些数据,放在数据库代价高,这样就可以直接放入文件,比如在使用msn的时候把聊天记录保存在本地的XML文件中。

2XML语法

2.1快速入门案例

?xml version= 1.0 encoding= utf-8 ?>

class>

stu>

name>华昆 /name>

sex>男 /sex>

age>28 /age>

/stu>

stu>

name>李雪晴 /name>

sex>

/sex>

age>21 /age>

/stu>

/class>

2.1.1注意点

(1)XML必须要有一个根元素。

class就是根元素

(2)上图的name可以称为元素或者是标签。

(3)如果里面不写东西 介绍/>

(4)区分大小写 name> /Name>XML解析的时候认为他没有结束。

3XML属性使用的注意点

?xml version= 1.0 encoding= utf-8 ?>

class>

stu stuNo= a001 >

name>华昆 /name>

sex>男 /sex>

age>28 /age>

/stu>

stu stuNo= a002 >

name>李雪晴 /name>

sex>女 /sex>

age>21 /age>

/stu>

/class>

3基本语法注意点

标签 属性名=”属性值”>

内容

/标签>

(1)如果在属性值里面需要添加单引号或者是双引号 可以用XML提供的索引机型替代。

stu stuNo= a00"1 >

显示的结果

(2)可以出现多个属性名,但是不能出现相同的属性名。

(3)注释的语法是 !--这是一个注释-->

4CDATA节

有些内容可能不想让解析引擎解析执行,而是当作原始内容处理,用于把整段文本解释为纯字符数据而不是标记的情况,包含大量 >&或者 ”字符,CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是XML标记

一般情况下XML都是传的文本比如华昆,但是偶尔也会传一些2进制的数据图片文件都是由2进制码构成的。这时候可以用CDATA节来特殊字符显示

4.1使用方法

?xml version= 1.0 encoding= utf-8 ?>

!--这是一个注释-->

class>

stu stuNo= a00"1 stuNo2= t-001 >

name>华昆 /name>

sex>男 /sex>

age>28 /age>

介绍> ![CDATA[李雪晴的男朋友 > >L]]> /介绍>

头像> ![CDATA[*&……%&**]]> /头像>

/stu>

stu stuNo= a002 >

name>李雪晴 /name>

sex>女 /sex>

age>21 /age>

/stu>

/class>

使用XML保存图片的方法

使用程序读入到内存,然后保存到XML文件中CDATE节中

5使用PI指令对XML文件进行修饰(了解)

代码如下

?xml-stylesheet type= text/css href= class.css ?>

6XML文件约束-dtd(documentyupe definition)文档类型定义。

6.1为什么需要XML约束

例1如当我在班级的信息中添加这样的信息

stu stuNo= a00"1 stuNo2= t-001 >

name>华昆 /name>

sex>男 /sex>

age>28 /age>

面积>20 /面积>

出毛净重>30Kg /除毛净重>

/stu>

例2 在HTML的标签中可用的有三种DTD的类型,分别是严格版本,过渡版本,和基于框架的版本。

根本上是为了约束XML文件的书写,也可以去约束其他文件xhtml html

常用的约束技术还有schema

6.2DTD快速入门案例

XML引入的方法 !DOCTYPE 根元素名 SYSTEM 写dtd的路径 />

?xml version= 1.0 encoding= utf-8 ?>

!DOCTYPE 班级 SYSTEM class2.dtd />

class>

stu stuNo= a00"1 stuNo2= t-001 >

name>华昆 /name>

sex>男 /sex>

age>28 /age>

面积>20 /面积>

出毛净重>30Kg /除毛净重>

/stu>

stu stuNo= a002 >

name>李雪晴 /name>

sex>女 /sex>

age>21 /age>

/stu>

/class>

Class2.dtd

!ELEMENT 班级 (学生+)>

!ELEMENT 学生 (名字年龄介绍)>

!ELEMENT 名字 (#PCDATA)>

!ELEMENT 年龄 (#PCDATA)>

!ELEMENT 介绍 (#PCDATA)>

注意:在默认情况下浏览器是不会检测,我们需要自己写代码来测试。

CheckDTD.html

步骤如下

(1)创建XML文档解析器对象

Var xmldoc=new ActiveXObjext(“Microsoft.XMLDOM”);

(2)开启XML校验

Xmldoc.validateOnParse=”true”;

(3)装载XML文档

Xmldoc.load(“class2.dtd”);

(4)获取错误信息

Xmldoc.parseError.reason;

Xmldoc.parseError.line

三者之间的关系如下如所示

6.3DTD的基本语法详解

(1)DTD分为外部DTD和内部DTD有点类似于css的用法

Class2.dtd

!ELEMENT 班级 (学生+)>

!ELEMENT 学生 (名字年龄介绍)>

!ELEMENT 名字 (#PCDATA)>

!ELEMENT 年龄 (#PCDATA)>

!ELEMENT 介绍 (#PCDATA)>

(2)例子:将上面的外部dtd的用法(在XML文件中我进行了详细的声明)直接写入到XML文件内部

?xml version= 1.0 encoding= utf-8 ?>

!DOCTYPE 班级 [

!ELEMENT 班级 (学生+)>

!ELEMENT 学生 (名字,年龄,介绍+)>

!ELEMENT 名字 (#PCDATA)>

!ELEMENT 年龄 (#PCDATA)>

!ELEMENT 介绍 (#PCDATA)>

]>

班级>

学生>

名字>华昆 /名字>

年龄>23 /年龄>

介绍>学习刻苦 /介绍>

面积>20 /面积>

/学生>

学生>

名字>李雪晴 /名字>

年龄>23 /年龄>

介绍>非常认真 /介绍>

/学生>

/班级>

(3)在XML文件中引入DTD文件的两种方式。

①本地引用

②引入公开的DTD

!DOCTYPE 文档根节点 PUBLIC ‘DTD名称’ “DTD文件的URL”>

(4)DTD的基本语法

①《!ELEMENT 元素名 元素类型》

②组合类型。

上例中的” +”号的意思是

根据上面图的意思学生可以出现1次以上,所以可以再写 学生>

*号的意思是可以不出现如下面的例子所示

解释:一个家庭 必须要有人,但是可以没有家电(家徒四壁)

?号是对象出现0~1 及是 可以不出现,如果出现只能出现一次

一个班级里面可以没有班长,但是如果有只能有一个班长

逗号 可以代表一个顺序。

意思如下图所示这里必须注意顺序

6.4修饰符的意义

几个修饰符的意思简介

? 0到1

+ 1到多

* 0到多

| 表示选择

,表示元素的顺序

6.5属性定义--语法

6.5.1基本语法

!ATTLIST 元素名字

属性名 属性类型 属性的特点

属性名 属性类型 属性的特点

>

6.5.2属性类型

CDATA 【表示属性值可以是字符或者数字】

ID 【属性值是唯一的,字母开头】

IDREF/IDREFFS 【ID引用】

Enumerated 【枚举】

ENTITY/ENTITIES 【实体】

6.5.3属性特点和属性类型CDATA

1.Required必须有

例子

这是时候林青霞的位置会报错,因为没有住址-require是必须的

2.Implied可有可无

例子

3.Fixed固定

4. .Default value默认

6.5.4属性类型----ID(唯一的必须要以字母开头)

表明该属性的取值必须是唯一的

例子给学生添加编号

如果林青霞的学号也变成a001会报错误

6.5.4属性类型----IDREF

(1)解释:例如每个学生都应该拜大哥

(2)自己做自己的大哥也行

(3)不能瞎拜大哥

报错信息

(5)如果想拜两个大哥

6.5.5属性类型----Enumberated

(1)Enumberrated的意思是事先定义好一些值,属性的值必须在所列出的值的范围内。

6.5.6属性特点----FIXED

7实体定义

7.1实体定义的意思

用于为一段内容创建一个别名,以后再XML文档中就可以使用别名引用这段内容了。

比如$str=”abcd”;

在DTD定义中,一条 !ENTITY…..>语句用于定义一个实体。

实体分为两个类型:引用实体和参数实体。

7.2引用实体

首先定义一个引用实体

然后再XML文件中对他进行引用

7.3参数实体

参数实体被DTD本身使用

如果乱写报错

CheckDTD.html的错误信息

DTD文件

!ELEMENT 班级 (学生+,班长)>

!ENTITY intro 这是一个介绍 >

!ENTITY % sName 名字 >

!ATTLIST 学生

住址 CDATA #IMPLIED

学号 ID #REQUIRED

大佬 IDREFS #REQUIRED

婚姻状态 (单身|结婚|离婚) #REQUIRED

国籍 CDATA #FIXED 中国

>

!ELEMENT 学生 (%sName;,年龄,介绍)>

!ELEMENT %sName; (#PCDATA)>

!ELEMENT 年龄 (#PCDATA)>

!ELEMENT 介绍 (#PCDATA)>

!ELEMENT 班长 (#PCDATA)>

XML文件

?xml version= 1.0 encoding= UTF-8 ?>

!DOCTYPE 班级 SYSTEM test.dtd >

班级>

学生 学号= a001 大佬= a001 婚姻状态= 单身 >

名字>小明 /名字>

年龄>23 /年龄>

介绍>好学生 /介绍>

/学生>

学生 学号= a002 大佬= a001 婚姻状态= 单身 >

名字>小美 /名字>

年龄>20 /年龄>

介绍>好人 /介绍>

/学生>

班长>小李 /班长>

/班级>

看懂下面的DTD文件

!DOCTYPE CATALOG [

!ENTITY AUTHOR John Doe >

!ENTITY COMPANY JD Power Tools, Inc. >

!ENTITY EMAIL jd@jd-tools.com >

!ELEMENT CATALOG (PRODUCT+)>

!ELEMENT PRODUCT

(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>

//在Product中下面几个子元素, +有多个 ?可以有一个

!ATTLIST PRODUCT

NAME CDATA #IMPLIED//属性NAME可以给也可以不给

CATEGORY (HandTool|Table|Shop-Professional) HandTool //枚举类型类别,如果不给值就默认这handTOOL

PARTNUM CDATA #IMPLIED

PLANT (Pittsburgh|Milwaukee|Chicago) Chicago //产地默认是芝加哥 枚举类型

INVENTORY (InStock|Backordered|Discontinued) InStock >//库存枚举类型 默认的是在库

!ELEMENT SPECIFICATIONS (#PCDATA)>// SPECIFICATIONS的说明

!ATTLIST SPECIFICATIONS//属性的说明

WEIGHT CDATA #IMPLIED//多种

POWER CDATA #IMPLIED>//功率是多大。

!ELEMENT OPTIONS (#PCDATA)>// OPTIONS的说明

!ATTLIST OPTIONS

FINISH (Metal|Polished|Matte) Matte

ADAPTER (Included|Optional|NotApplicable) Included

CASE (HardShell|Soft|NotApplicable) HardShell >

!ELEMENT PRICE (#PCDATA)> // PRICE的说明

!ATTLIST PRICE

MSRP CDATA #IMPLIED

WHOLESALE CDATA #IMPLIED

STREET CDATA #IMPLIED

SHIPPING CDATA #IMPLIED>

!ELEMENT NOTES (#PCDATA)>

]>


《xml中DTD的深入解析教程》目录

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5