什么是dtd约束技术?
DTD(Document Type Definition,文档类型定义),主要是用来约束XML文件的一种方式。它是标准通用标记语言和可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。DTD也可用做保证标准通用标记语言、可扩展标记语言文档格式的合法性,可通过比较文档和DTD文件来检查文档是否符合规范,元素和标签使用是否正确。文件实例提供应用程序一个数据交换的格式。使用各类DTD是为了让标准通用标记语言、可扩展标记语言文件能符合规定的数据交换标准,因为这样,不同的公司只需定义好标准DTD,就能依DTD建立文档实例,并且进行验证,如此就可以轻易交换数据,防止了实例数据定义不同等原因造成的数据交换障碍,满足了网络共享和数据交互。DTD文件是一个美国信息交换标准代码文本文件。
dtd作为一种xml的约束技术,多见于现在的程序框架中。虽然在开发中通常使用的是schema,但为了读懂框架,dtd是我们必备的知识之一。
一、一个关于产品的dtd
以下是product.dtd代码:
以上是一个引用了product.dtd的xml。
以下是dtd代码:
通过以上对dtd的了解,掌握了dtd的一些规律之后,可以知道,在dtd中有3种引用方式,分别为:
1.内部引用示例
以下是java代码:
2.外部引用
当引用的文件在本地时(外部DTD),采用如下方式:
例如:。*DTD文件路径本地的。
3.公共dtd的引用
当引用的文件是一个公共文件时(公共DTD)采用如下方式:
例如:
“-//SunMicrosystems,Inc.//DTDwebapplication2.3//EN”
“http://java.sun.com/dtd/web-app_2_3.dtd”>
二、dtd中的元素定义
细心观察,可以发现dtd中的“+”符号,我们常用+类比其他元素的用法。
三、DTD的属性
属性声明的语法格式,如下所示:
<!ATTLIST商品
类别CDATA#REQUIRED必须的
颜色CDATA#IMPLIED可选的
>
示例:
Product2.xml代码如下所示:
DTD支持的属性类型如下表所示:
<!ATTLIST商品
类别CDATA#REQUIRED必须的
颜色CDATA#IMPLIED可选的
>
四、实体(ENTITY)定义
实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别名引用这段内容了。
在DTD定义中,一条<!ENTITY…>语句用于定义一个实体。
Techer.xml代码:
五、DTD约束的形式
dtd约束有以下四种形式:
若要创建一份完整性高、适应性广的DTD十分困难,因为各个行业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:医学、建筑、工商、行政。DTD定义的元素范围越广,就越复杂。DTD可能是一个完全独立的文件,也可能在XML文件中直接设定。DTD也分为外部DTD和内部DTD。比如,有几十家相互联系的、合作伙伴关系的公司、厂商,他们相互间的交换电子文档都是用XML文档。那么可以将这些XML文档的DTD放在一个地方,让所有交换的XML文档都使用此DTD,这方法最方便,同时也适用于公司内部的XML文件使用。