DTD与XSD的区别

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






猜你喜欢

转载自blog.csdn.net/qq_17037733/article/details/80503560
xsd
DTD