首页 百科知识 XMLDTD简介

XMLDTD简介

时间:2024-10-15 百科知识 版权反馈
【摘要】:XML1.0中默认的Schema是DTD,而时下流行的Schema是XML Schema。在数据交换中XML的验证模式起到了重要的作用,它让XML文件能够成为数据交换的标准,一旦定义好标准的DTD或是XML Schema,各个用户就可以依照它们书写自己的XML文件,并且进行验证,这样就轻易地实现了标准的一致,使数据交换有了统一的数据格式。其中,element_name是XML元素的标记名称,element_ or_ data是元素的内容,它可以是元素或数据,如果是多个,则用逗号隔开。XML文件中的空元素在DTD中的定义方式为:<!

3.4.1 XML DTD

1.DTD简介

XML允许用户自己定义基于信息描述、可以体现数据之间逻辑关系的标记,确保文档具有较强的易读性、清晰的语义和易检索性。因此,一个完全意义上的XML文档不仅仅是严格遵守XML语法要求的“格式良好的”文件,而且还应该是使用了自定义标记的XML文档。也就是说,它必须遵守文档类型定义DTD中已声明的种种规定,这样解析器才能读懂这一XML文件,也只有这样的XML文件才是真正有效的。

Schema是一种XML文件的验证机制,它主要定义XML文件中出现的元素、属性以及整个文件的整体结构。XML1.0中默认的Schema是DTD,而时下流行的Schema是XML Schema。

DTD是XML文件的验证机制,它描述了一个置标语言的语法和词汇表,也就是定义了文档的整体结构以及文档的语法。简而言之,DTD规定了一个语法分析器以解释一个“有效的”XML文档所需要知道的所有规则的细节。

在数据交换中XML的验证模式起到了重要的作用,它让XML文件能够成为数据交换的标准,一旦定义好标准的DTD或是XML Schema,各个用户就可以依照它们书写自己的XML文件,并且进行验证,这样就轻易地实现了标准的一致,使数据交换有了统一的数据格式。

2.XM L文件应用DTD

DTD可以直接包含在XML文件中,它可以是XML文件的组成元素,DTD的位置一般在XML文件的开头。

例3-4

01:<? xml Version=“1.0”encoding=“GB2312”>

02:<!――XML内部DTD――>

03:<! DOCTYPE file[

04:<! ELEMENT file(subject,body)>

05:<! ATTLIST file

06: number CDATA#REQUIRED

07:>

08:<! ELEMENT subject(#PCDATA)>

09:<! ELEMENT body(#PCDATA)>

10:]>

11:<file number=“1”>

12:<subject>欢迎进入XML世界</subject>

13:<body>这是第一个XML文件,欢迎进入XML世界</body>

14:</file>

上例中第3行到第10行为DTD,第3行指出了file为根元素,第4行表示file元素有subject和body两个子元素,第5行到第7行定义了file的number属性,第8、9行定义了元素subject和body。

DTD也可以是应用在XML文件外部独立存储的一个文件,由XML文件去调用DTD文件。

例3-5

XML文件:

01:<? xml Version=“1.0”encoding=“GB2312”>

02:<!――XML外部DTD――>

03:<! DOCTYPE file SYSTEM“XDTD.dtd”>

04:<file number=“1”>

05:<subject>欢迎进入XML世界</subject>

06:<body>这是第一个XML文件,欢迎进入XML世界</body>

07:</file>

DTD文件(XDTD.dtd):

01:<? xml Version=“1.0”encoding=“GB2312”>

02:<! ELEMENT file(subject,body)>

03:<! ATTLIST file

04: number CDATA#REQUIRED

05:>

06:<! ELEMENT subject(#PCDATA)>

07:<! ELEMENT body(#PCDATA)>

XML文件的第3行指定使用外部的DTD文件,其他部分为XML文件元素。

DTD文件除了第1行为XML文件声明外,其余部分为DTD语法,DTD的具体语法将在下面讲解。

3.DTD元素

DTD元素的语法为:<! ELEMENT element_name(element_or_data)>。其中,element_name是XML元素的标记名称,element_ or_ data是元素的内容,它可以是元素或数据,如果是多个,则用逗号隔开。

DTD不仅定义了元素的标记,而且定义了XML文件的结构。各元素间的关系(即出现次数)都可以用DTD定义。元素只出现一次可以直接列出,如果元素重复出现,我们还可以定义元素的出现次数,如表3-1所示。


表3-1

img24

例如:<! ELEMENT element_ name(element?)>表示element_ name元素的子元素element出现一次或不出现。

XML文件中的空元素在DTD中的定义方式为:<! ELEMENT element_ name(EMPTY)>。元素的数据内容也可以在DTD中的定义,如表3-2所示。


表3-2

img25

例如:<! ELEMENT element_name(#PCDATA)>表示element_name元素的内容可能含有子元素。

元素可以混合定义,如下所示:

<! ELEMENT element_ name(#PCDATA element1 element2)>

上述element_ name元素可以是文字数据,其中拥有element1子元素和element2元素。

4.DTD属性

DTD元素属性的语法为:<! ATTLIST element_ name attribute_ name attribute_ type default_ value>。element_ name是属性所属的XML元素名称,attribute_ name是元素属性的名称,attribute_ type指定元素的属性类型,如表3-3所示。


表3-3

img26

例如:<! ATTLIST book code ID>表示元素book具有属性code,并且code应该作为book元素的主索引,在整个XML文件里只出现一次。

default_ value是属性的默认值,它指出属性是否出现,如表3-4所示。


表3-4

img27

例如:<! ATTLIST book sales CDATA# IMPLIED>表示元素book的属性,sales为可选项。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈