什么是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文档

	

外部DTD文档

	

内外部DTD文档结合

	
<---------子元素的名称及顺序 <-------------------子元素的数据类型

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

张三

hello

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

元素的定义

语法:    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。

你可能感兴趣的:(Web,Service)