DTD与XSD的区别

https://blog.csdn.net/qq_17037733/article/details/80503560

DTD(Document Type Definition)即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制

一个DTD文档包含:(1)元素的定义规则;(2)元素间关系的定义规则;(3)元素可使用的属性,可使用的实体或符号规则

新建一个.dtd文件:

<!ELEMENT 班级 (学生+)>
<!ELEMENT 学生 (名字,年龄,介绍)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>

<!ELEMENT 介绍 (#PCDATA)>

DTD基本语法:<!ELEMENT NAME CONTENT>

其中: 
- ELEMENT是关键字,是不能修改的 
- NAME表示元素名称 

- CONTENT是元素类型,必须要大写!CONTENT的内容有三种写法:

使用DTD验证模式需要在XML文件的头部声明

<?xml version="1.0" encoding="utf-8"?>
<!-- 引入dtd文件,约束这个xml -->
<!DOCTYPE 班级 SYSTEM "myclass.dtd">
<班级>
 <学生>
 <名字>周小星</名字>
 <年龄>23</年龄>
 <介绍>学习刻苦</介绍>
 </学生>
</班级>

<!DOCTYPE 根元素 SYSTEM/PUBLIC "DTD文件路径"> SYSTEM表示本地 PUBLC 表示网络

DTD使用是非xml语法编写,不支持扩展,不支持命名空间,只提供非常有限的数据类型

XML Schemal语言就是XSD,XML Schema描述了XML文档的结构,可以用一个指定的XML Schema来验证某个XML

XML Schema的优点:
1) XML Schema基于XML,没有专门的语法 
2) XML Schema可以象其他XML文件一样解析和处理 
3) XML Schema比DTD提供了更丰富的数据类型.
4) XML Schema提供可扩充的数据模型。 
5) XML Schema支持综合命名空间 

6) XML Schema支持属性组

xsd引用

<?xml version="1.0"?>

<note xmlns="http://www.w3school.com.cn" //默认命名空间
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" //可用的XML SCHEMAL实例命名空间 --->可以使用schemaLocation
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> //schemaLacation两个属性:需要使用的命名空间 ;供命名空间使用的 XML schema 的位置

<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
xsd定义


<?xml version="1.0"?>
 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"//在schema中用到的数据类型和元素来自此命名空间,并且来自此命名空间的元素以xs开头
targetNamespace="http://www.w3school.com.cn"//此shema定义的元素(note等)来自此命名空间
xmlns="http://www.w3school.com.cn"//默认的命名空间
elementFormDefault="qualified">
    <xs:element name="note">
       <xs:complexType>
      <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <xs:element name="from" type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
    </xs:element>
</xs:schema>

参考于http://www.w3school.com.cn/schema

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值