dtd与xsd去区别

先说一下xml吧,xml(eXtensible Markup Language)可拓展标记语言,是一种简单的数据存储语言,应用简单的标记描述数据。而dtd和xsd可以说是xml的规范,xml根据规范进行编写。

dtd(Document Type Definition)即文档类型定义,是一种xml模式的约束语言,属于xml的组成部分一个。dtd文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

test.dtd

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

<!ELEMENT pome (author,title,content)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT content (#PCDATA)>

xsd(xml Schemas Definition),描述了xml文档结构。xsd本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。xsd文件中会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。

test.xsd(借用http://www.cnblogs.com/chenqingwei/archive/2010/05/10/1731743.html)

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="原子类型" targetNamespace="http://student.com" elementFormDefault="qualified"
    xmlns="http://student.com" xmlns:mstns="http://student.com" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="student">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="name" type="nameType"/>  
          <xs:element ref="age"/>
          <xs:element ref="sex"/>
          <xs:element ref="phone"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <xs:simpleType name="nameType">
      <xs:restriction base="xs:string">
        <xs:minLength value="4"/>
        <xs:maxLength value="8"/>
      </xs:restriction>
    </xs:simpleType>
    
    <xs:element name="age">
      <xs:simpleType>
        <xs:restriction base="xs:int">
          <xs:minInclusive value="1"/>
          <xs:maxInclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    
      <xs:element name="sex">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="男"/>
          <xs:enumeration value="女"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    
    <xs:element name="phone">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\d{3}-\d{8}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
</xs:schema>

dtd与xsd的区别:

1)dtd 是使用非 XML 语法编写的。

2)dtd不可扩展,不支持命名空间,只提供非常有限的数据类型 。

3)xsd支持数据类型,支持命名空间

时间: 2024-12-27 04:20:07

dtd与xsd去区别的相关文章

DTD与XSD的区别

DTD=类型定义(Documnet Type Definition) XSD=XML结构定义 ( XML Schemas Definition ) DTD 就相当于 XML 中的“词汇”和“语法”,不同的行业可以定义自己的“词汇”和“语法”,以利于解析器验证 XML 文档的有效性,并且这样也利于行业中和行业之间的交流. XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间. DTD和XSD相比:DTD 是使用非 XML

毕业设计——002获取DTD、XSD数据(未完待续)

一.基本思路: 1.获取DTD.XSD数据的URLS(从谷歌搜索结果中获取) 2.打获URLS获取DTD.XSD文件(期间去除不能打开连接的,对错误的数据进行分析.对数据归类) 二.获取DTD.XSD数据的URLS 所谓的DTD.XSD数据的URLS即为红线标识的 分析不难找出一下规律:(搜索的结果都在id='search'的div里,每一个URL都在class='g'的div里class='r'的h3里的a的href属性里) 基本代码如下(用到第三方模块BeautifulSoup):

在Eclipse中导入dtd和xsd文件,使XML自动提示 (转)

DTD 类型约束文件    1. Window->Preferences->XML->XML Catalog->User Specified Entries窗口中,选择Add 按纽            2.在Add XML Catalog Entry 对话框中选择或输入以下内容:        Location: F:/soft/programmingSoft/Framework/Ibatis/sql-map-config-2.dtd        Key Type: URI  

在Eclipse中导入dtd和xsd文件,使XML自动提示

DTD 类型约束文件    1. Window->Preferences->XML->XML Catalog->User Specified Entries窗口中,选择Add 按纽            2.在Add XML Catalog Entry 对话框中选择或输入以下内容:        Location: F:/soft/programmingSoft/Framework/Ibatis/sql-map-config-2.dtd        Key Type: URI  

DTD和Schema的区别

Schema是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性.DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构.它们之间的区别有下面几点: 对于Spring我们引入的是Schema,对于Hibernate,我们引入的是DTD Schema本身也是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有很多的好处. DTD文档的结构是"平铺型"的,如果定义复杂的XML文档,很难把握各元素之间的嵌套关系:

Delphi 7验证XML合法性(利用DTD、XSD)

拥有正确语法的XML被称为“形式良好”的XML.通过DTD验证的XML是“合法”的XML.DTD(文档类型定义)的作用是定义XML 文档的合法构建模块.它使用一系列的合法元素来定义文档结构.XML Schema是基于XML的DTD替代者.XML Schema描述XML文档的结构.XML Schema语言也称作XML Schema定义(XML Schema Definition,XSD).        PowerDesigner是Sybase公司的CASE工具集,也可以用来设计XML模型.在这里

dtd与schema的区别&amp;XML文件解析常用方式

Schema和DTD 都是用来定义各种文件中XML标记的使用规范.Schema是标准的XML文件,而DTD则使用自己的特殊语法,因此,只需要知道XML的语法规则就可以编写Schema了,不需要再学习其它语法规则.可以使用相同的处理器来解读,Schema利用命名空间将文件中特殊的节点与Schema说明相联系,一个XML文件可以有多个对应的Schema,若是DTD的话,一个XML文件只能有一个相对应的DTD文件.Schema的内容模型是开放的,可以随意扩充,而DTD则无法解读扩充的内容.DTD只能把

Override和Overload的含义去区别

java中的继承,方法覆盖(重写)override与方法的重载overload的区别 方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现. 重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) .子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了.如

JAVA Override和Overload的含义去区别

java中的继承,方法覆盖(重写)override与方法的重载overload的区别 1.方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) .子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被屏蔽了. 2.如果在一个