DTD规范 XLM文档笔记

DTD规范XLM文档笔记

1、使用DTD的好处

v 用DTD提供统一格式。例如,用DTD规定个人简历文档的逻辑结构,包括所需填写内容和内容排列方式,所有按照这个DTD编写的个人简历都将具有统一格式。

v 用DTD验证数据有效性。DTD约束文档逻辑结构,可以根据DTD检查数据,验证其是否符合规定要求,确保数据正确和有效。

v 根据DTD编写文档样式单。DTD能在不提供原始资料的情况下,表示出一个网页或文档的架构元素,这意味着用户能先根据DTD为未来的文档编写样式单,然后再安全且不破坏结构的把用户的资料放上去,提高工作效率。

2、Dtd文档的基本格式

内连接格式:

<?xml version=”1.0 encoding=”utf_8” standalone=”true”?>

<!DOCTYPE 根标记的名称[约束]> 内部DTD

外连接格式

<!DOCTYPE 根标记的名称 SYSTEM “dtd1.dtd”> dtd的引入

格式:<根标记>

<字标记>

</字标记>

………..

</根标记>

3.DTD对元素声明及应用:

. Dtd1.dtd的定义能在xml文档出现的元素、属性、xml文档的结构

Dtd的格式:

<?xml version=”1.0” encoding=”utf_8”?>

<!ELEMENT 元素的名称 元素的内容>

<!ATTLIST 元素名 属性名 类型keyword “默认值”> 对属性的设置

(1)空元素即为单标记 <br/> 或者 <br></br> 两者形式一样,但不能加空格

(2)ANY型的,因为约束是对文件进行规范的,所以any相对来说没有任何意义。可以成为无效的文件

有效的XML文档的所以属性都必须在约束中声明才为有效的文档

(3)定义字符串内容的元素

<!ELEMENT 元素名 #PCDATA>

<!ELEMENT 书籍列表 (#PCDATA)>

(4)混合类型内容的元素-1------既有字符串内容,又有子元素的

但一般并不推荐使用这个元素

<!ELEMENT 学生 (#PCDATA|学号|姓名)*>

注: | 和* 一起表示出现多次,而且是无序的,可以出现多次,而且文本出现的顺序是任意的

例子:

<?xml version=”1.0” encoding=”utf_8”?>

<喜欢的游戏>

这是我喜欢的游戏

<游戏>

CF游戏好玩

<游戏类型>463</游戏类型>

<游戏名称>4trt</游戏名称>

CF游戏好玩

<游戏类型>rewtre</游戏类型>

<游戏名称>l;lkjhgfds</游戏名称>

</游戏>

</喜欢的游戏>

混合类型内容的元素2-------包含的不是文本,也是子元素

<!ELEMENT 学生 (学号,姓名)*> * 代表0次或多次

(5)定义子元素

有序的子元素

互斥的子元素

根据出现的频率来定:

有序的子元素的例子:

<书籍列表>

<计算机书籍>

<书名>顺利度过</书名>

</计算机书籍>

<计算机书籍>

<价格>顺利度过</价格>

</计算机书籍>

</书籍类表>

4、DTD对属性声明

属性是描述元素的额外信息的,是对元素的修饰与补充。一般来说,信息详实的XML文档都是一个特点,即元素通过属性来描述边缘信息。

在 DTD 中,属性通过 ATTLIST 声明来进行声明。一个属性声明可以声明一个元素的多个属性。

(1)对属性声明的格式:<!ATTLIST 元素名 属性名 属性类型 keyword “默认值”>

<!ELEMENT作者 地址 CDATA #FIXED “保定市”>

注: #FIXED “保定市 可设,可不设,系统默认

(2) 对属性的限制条件:

# CDATA 纯文本的的类型

# IMPLIED 可选的

# FIXED “保定市” 指定固定值

# PEQUIRED 必须为该属性指定默认值

# LMMPLIED 不指定默认值

(3)属性的类型:

1、CDATA 字符串数据

2、(en1|en2…..) 枚举类型

例子:<!ATTLIST 作者 性别(男|女) “男”> 默认值

3、ID 标识符必须是唯一的

例子:<!ATTLIST 计算机书籍 id ID #REQUIRED>

4、IDREF 该值必须为另外一个的属性值

例子:<!ELEMNT 书籍列表 (计算机书籍 | 读者)>

<!ELEMENT 读者 EMPTY>

<!ATTLIST 读者 书号 IDREF # IMPLIED > # IMPLIED表示可选的

5、IDREFS 表示可引用多个id值

<!ATTLIST 读者 书号 IDREFS # IMPLIED >

<读者 书号=“0001_0002”>

6、NMTOKEN 和 NMTOKENS类

NMTOKEN 和CDATA类型相比, NMTOKEN要求严格

例子:

<!ATTLIST 地址 NMTOKEN # PEQUIRED>

NMTOKENS可以取多个合法的元素

5、实体的定义-------ENTITY ENTITIES 类型的

(1)实体的概念:实体是包含了文档片段的虚拟存储单元,可用来存储XML声明、DTD其他形式的文本及二进制数据等。简单来讲就是一段代码或数据的代称,这个代称即为实体

的名字。

(2)实体引用:是用一个字符串代替另一个字符串。

(3)实体的引用例子: conent “java书籍的详细内容的介绍”

<书名>conten</书名> 用content来代替字符串的内容,减少麻烦

(4)实体引用的作用:

Ø 实体定义的作用:提高代码的服用,方便修改,维护XML文档

Ø 使用某些特殊的符号,这些特殊的符号可能会使XML解析器混淆

Ø 减少字符输入量,如果某个字符串特别长,而且需要经常使用,则可以定义为实体

(5)实体的分类:可解析的实体和不可解析的实体

1、按照实体的具体内容分类

可解析的实体:可解析实体的具体内容为简单的字符、数字、文本块。

不可解析的实体:具体内容则为图片、声音等二进制文件。

注:一般情况下都为不可解析的实体

2、按照逻辑存储分类:

内部实体和外部实体

以下都是内部实体

3、按使用范围分:

一般实体和参数实体:

一般(普通)实体的定义的语法--------在xml文档中使用:

<!ELNTITY 实体名 “实体值”>

使用实体时:&实体名;

注意:实体是在dtd中定义的

普通实体可以作为属性来表示

<!ATTLIST 简要介绍 connect >

<简要介绍 connect=”&title”> 引用实体当做属性

可以是元素

<简要介绍>&实体名</简要介绍>

参数实体------在dtd文档中使用,对dtd中的属性设置:

语法:

<!ENTITY %实体名 “实体值“>

使用:&实体名

<!ENTITY % boolean “yes|no|true|false”>

<!ATTLIST 作者 性别 (%boolean;)>

两者不同:

一般实体 用于xml文档中 % 实体名 ““ % 实体名;

参数实体 用于dtd文档中 实体名 ““ &实体名;

外部实体:

在dtd中定义

<!ELEMENT out SYSTEM “文档名称“>

<!ELEMENT out SYSTEM “extententity.txt“> out代替了文本中的内容

对外部实体的引用 : <简要介绍>&outer;</简要介绍>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值