什么是DTD?

什么是DTD、为什么要用DTD

文档类型定义-Document Type Definition

DTD用来描述XML文档的结构,一个DTD文档包含:

  • 元素(ELEMENT)的定义规则
  • 元素之间的关系规则
  • 属性(ATTLIST)的定义规则
  • 可使用的实体(ENTITY)或符号(NOTAION)规则

DTD文档与XML文档实例的关系:

  • 类与对象
  • 数据库表结构与数据记录

DTD的作用:

  • 每个XML文件可以携带一个自身格式的描述。
  • 不同组织的人可以使用过一个通用DTD用来交换数据。
  • 应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效
  • 可以使用DTD校验自己的XML数据
    如何生成一个DTD文档

DTD文档的声明及引用:

内部DTD文档

	<!DOCTYPE 根元素[定义内容]>

外部DTD文档

	<!DOCTYPE 根元素 SYSTEM “DTD文件路径”>

内外部DTD文档结合

	<!DOCTYPE 根元素 SYSTEM "DTD文件路径" [定义内容]>
<?xml version='1.0' encoding='gb2312'?> <---------子元素的名称及顺序 <!ELEMENT author(#PCDATA)><-------------------子元素的数据类型 <!ELEMENT title(#PCDATA)> <!ELEMENT content(#PCDATA)>

]><-----------------------结束标签

<author>张三</author>

<title>hello</title>

<content>world</content>    <-- 内部DTD示例(innerDTD.xml)-->

元素的定义

语法:<!ELEMENT NAME CONTENT>    ELEMENT:关键字 NAME:元素名称 CONTENT:元素类型

CONTENT:
  •   EMPTY:该元素不能包含子元素和文本,但可以有属性--(空元素)
    
  •   ANY:该元素可以包含任何在DTD中定义的元素内容
    
  •   .#PCDATA:可以包含任何字符数据,但是不能在其中包含任何子元素
    
  •   纯元素类型:只包含子元素,并且这些子元素外没有文本
    
  •   混合类型:包含子元素和文本数据的混合体
    

属性类型:

NMTOKEN/NMTOKENS:

  • NMTOKEN是CDATA的一个子集,表示属性值必须是英文字母、数字、句号、破折号、下划线或冒号,属性值不能含有空格。
  • NMTOKENS与NMTOKEN类似,包含多个由空格分隔的字符。

IDREF/IDREFS:

  • IDREF属性的值指向文档中其它地方声明的ID类型的值。
  • IDREFS同IDREF,但是可以具有由空格分开的多个引用。

Enumerated:

  • 实现定义好一些值,属性的值必须在所列出的值的范围内。

总结:

  • 一个有效的XML文档必 须是结构正规的,结构正规的XML文档不一定是有效的。
  • DTD包含一套用来描述并限制XML文档结构的语法规则:
  •   元素的定义规则
    
  •   元素之间的关系规则
    
  •   属性的定义规则
    
  •   可使用的实体或符号规则
    
  • 命名空间用于避免命名冲突。
  • 在XML中,使用全球唯一的URL作为Namespaces。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值