DTD和XML Schema

本文详细对比了XMLSchema和DTD的区别,并介绍了XMLSchema的优势和应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

留做备份



XML Schema是XML文档,而DTD有自己的特殊语法。这样,只需要懂得XML的语法规则就可以编写Schema,无须学习其他的语法规则;XML文件与XML Schema文件可以用相同的解析器进行解析,无须两套解析器;XML Schema有强大、易用的扩展性。
 
XML Schema利用命名空间将文档中的特殊的节点与Schema说明相联系,一个XML文件可以有多个Schema,而对于DTD一个XML只能有一个相对应的DTD。
 
XML Schema内容模型是开发的,可以随意扩充,而DTD则无法解析扩充的内容。
 
DTD只能把内容类型定义为一个字符串,而XML Schema允许把内容类型定义为整形、浮点型、布尔型等等,而无须重定义。
综上,XML Schema较DTD有着优势,所以尽量把XML Schema作为首选为佳。

DTDの例:

<!ELEMENT 社員情報(社員)*>
<!ELEMENT 社員 (名前, 所属, 電話, メール)> 
<!ELEMENT 名前 (#PCDATA)> 
<!ELEMENT 所属 (#PCDATA)> 
<!ELEMENT 電話 (#PCDATA)> 
!ELEMENT メール(#PCDATA)> 
<!ATTLIST 社員社員番号 CDATA #REQUIRED>

XMLスキーマの例:

<?xml version="1.0" encoding="Shift_JIS"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >

<xs:element name="社員情報" type="EmployeeInfoType" />
<xs:complexType name="EmployInfoType">
<xs:sequence >
<xs:element ref="社員" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>

<xs:element name="社員" type="EmployeeType" />
<xs:complexType name="EmployeeType">
<xs:sequence >
<xs:element ref="名前" />
<xs:element ref="所属" />
<xs:element ref="電話" />
<xs:element ref="メール" />
</xs:sequence>
<xs:attribute name="社員番号" type="xs:int" use=“required”/>
</xs:complexType>

<xs:element name="名前" type="xs:string" />
<xs:element name="所属" type="xs:string" />
<xs:element name="電話" type="xs:string" />
<xs:element name="メール" type="xs:string" />

</xs:schema>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值