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)
<?xmlversion="1.0"encoding="utf-8"?>
<xs:schemaid="原子类型"targetNamespace="http://student.com"elementFormDefault="qualified"
xmlns="http://student.com"xmlns:mstns="http://student.com"xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:elementname="student">
<xs:complexType>
<xs:sequence>
<xs:elementname="name"type="nameType"/>
<xs:elementref="age"/>
<xs:elementref="sex"/>
<xs:elementref="phone"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleTypename="nameType">
<xs:restrictionbase="xs:string">
<xs:minLengthvalue="4"/>
<xs:maxLengthvalue="8"/>
</xs:restriction>
</xs:simpleType>
<xs:elementname="age">
<xs:simpleType>
<xs:restrictionbase="xs:int">
<xs:minInclusivevalue="1"/>
<xs:maxInclusivevalue="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:elementname="sex">
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:enumerationvalue="男"/>
<xs:enumerationvalue="女"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:elementname="phone">
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:patternvalue="\d{3}-\d{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
dtd与xsd的区别:
1)dtd 是使用非 XML 语法编写的。
2)dtd不可扩展,不支持命名空间,只提供非常有限的数据类型 。
3)xsd支持数据类型,支持命名空间
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。