欢迎访问文稿网!

XMLDTD简介

范文之家 分享 时间: 加入收藏 我要投稿 点赞

XMLDTD简介

     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为可选项。

221381
领取福利

微信扫码领取福利

微信扫码分享