dtd即文档类型定义,是一种xml约束模式语言,是xml文件的验证机制,属于xml文件组成的一部分。
dtd 是一种保证xml文档格式正确的有效方法,可以通过比较xml文档和dtd文件来看文档是否符合规范,元素和标签使用是否正确。
一个 dtd文档包含:
元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。 dtd和xsd相比:dtd 是使用非 xml 语法编写的。 dtd 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
没有深入1.0 跟 2.0的区别
<!doctype beans public "-//spring//dtd bean //en" "http://www.springframework.org/dtd/spring-beans.dtd">
<!doctype beans public "-//spring//dtd bean 2.0//en" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
2.xsd(xml schemas definition)
xml schema语言也就是xsd。xml schema描述了xml文档的结构。 可以用一个指定的xml schema来验证某个xml文档,以检查该xml文档是否符合其要求。文档设计者可以通过xml schema指定一个xml文档所允许的结构和内容,并可据此检查一个xml文档是否是有效的。xml schema本身是一个xml文档,它符合xml语法结构。可以用通用的xml解析器解析它。 一个xml schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认 和固定值。
xsd是dtd替代者的原因,一是据将来的条件可扩展,二是比dtd丰富和有用,三是用xml书写,四是支持数据类型,五是支持命名空间。
xml schema的优点:
1) xml schema基于xml,没有专门的语法
2) xml schema可以象其他xml文件一样解析和处理
3) xml schema比dtd提供了更丰富的数据类型.
4) xml schema提供可扩充的数据模型。
5) xml schema支持综合命名空间
6) xml schema支持属性组。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd>
我这里用了dtd,详情见博客
以上就是dtd和xsd在xml中的区别以及应用详解的详细内容。
