正在加载图片...
346Asp;高箱程 Chinaopub.com 下载 11.13模式和文档类型定义 我们一开始就声明了XML标记实际上不代表任何意义,可以给标记取任何名字,但怎 才能知道什么类型的标记在文档中是允许使用的?因此必须使用文档类型定义( Document Type Definition,DTD)或模式( Schema)。模式和DTD的功能几乎是一样的,都规定了哪些元 素在文档中可以使用,并可以把一个形式化的ⅩML文档转变为一个有效的XML文档。也就是 说它被正确标记(即有良好形式),并且只包含允许的元素和属性。 既用DTD也用模式的原因是因为微软觉得DTD在有些地方显得比较笨拙。DTD是一种定 义XML文档结构的文本文件,但DTD本身并不是XML,有完全不同的语法规则。这就有点反 常,所以在这一点上我们赞成微软的观点。如果处理XML文档,那么定义那些文档的结构也 应该是XML,这就是模式所做的,即模式是DTD的XML等价物。 下面看一个典型的DTD,它用于 authors XML文档,来自于pubs数据库: city state, zip, contract)> < ELEMENT au id (CDATA I ELEMENT au_lname (CDATA)> < ElEMENT au_fname (CDATA) <I ELEMENT address (CDATA)> < ELEMENT city (CDATA)> < ELEMENT state (CDATA)> <!ELEMENT zip (cDaTA) < I ELEMENT contract (CDATA)> 这实际上很简单。它说明了文档由零个或多个 AUTHOR单元组成。 AUTHOR后面的加号 指的是“一个或多个”。每个 AUTHOR元素由九个其他元素构成。每个子元素都包含字符数据 (CDATA) DTD有两个缺点 不是XML 不能为每一个元素指定数据类型,比如整数、日期等。 CDATA仅表示元素只包含字符 数据,并不确定元素内容的实际类型。 因为这些原因,微软向W3C建议使用模式。如果将上面的DTD文档转换为模式,上面的 内容将变成 < Schema ID=" Author”> cLement name='auid/> <Element name=_lname'/> <Element name='aufname'/> Element name='phone'/ <Element name='address/> <Element name=city/> <Element name=zip/> <Element name=contract"/ </Schema> 再加上数据类型,将得到: <Schema ID="Author"> Element nameeauid' type='string/> <Element name=au_lname'type='string'/> <Element name=au_ fname type='string'/>11.1.3 模式和文档类型定义 我们一开始就声明了 X M L标记实际上不代表任何意义,可以给标记取任何名字,但怎么 才能知道什么类型的标记在文档中是允许使用的?因此必须使用文档类型定义 ( D o c u m e n t Type Definition,D T D )或模式( S c h e m a )。模式和D T D的功能几乎是一样的,都规定了哪些元 素在文档中可以使用,并可以把一个形式化的 X M L文档转变为一个有效的 X M L文档。也就是 说它被正确标记(即有良好形式),并且只包含允许的元素和属性。 既用D T D也用模式的原因是因为微软觉得 D T D在有些地方显得比较笨拙。 D T D是一种定 义X M L文档结构的文本文件,但 D T D本身并不是X M L,有完全不同的语法规则。这就有点反 常,所以在这一点上我们赞成微软的观点。如果处理 X M L文档,那么定义那些文档的结构也 应该是X M L,这就是模式所做的,即模式是 D T D的X M L等价物。 下面看一个典型的D T D,它用于authors XML文档,来自于p u b s数据库: 这实际上很简单。它说明了文档由零个或多个 A U T H O R单元组成。A U T H O R后面的加号 指的是“一个或多个”。每个A U T H O R元素由九个其他元素构成。每个子元素都包含字符数据 ( C D ATA )。 D T D有两个缺点: • 不是X M L。 • 不能为每一个元素指定数据类型,比如整数、日期等。 C D ATA仅表示元素只包含字符 数据,并不确定元素内容的实际类型。 因为这些原因,微软向 W 3 C建议使用模式。如果将上面的 D T D文档转换为模式,上面的 内容将变成: 再加上数据类型,将得到: 346计计ASP 3 高级编程 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有