XML之DTD(1)

       过马路我们都知道要走人行横道,开车要靠右行驶......这些都是我们熟知的交通法则。那么在XML中也有一套法则——DTD,让我们来认识一下它吧。

      定义与用途

     DTD定义XML文件的结构;为XML文件提供语法与规则;内容 既可以定义在XML文件中,也可以定义在XML文件之外;使用XML进行数据交换的行业和组织可定义自己的DTD;DTD对于XML是可选的内容。

         为什么要使用DTD?为了正确交换数据,XML文件需要确定的结构。

         XML内置DTD内容:

<?xml version="1.0" encoding="utf-8"?>
<DOCTYPE 书籍列表[
     <!ELEMENT 书籍列表(计算机书籍)*>
     <!ELEMENT 计算机书籍(书名,价格,简要介绍)>
     <!ELEMENT 书名(#PCDATA)>
     <!ELEMENT 价格(#PCDATA)>
     <!ELEMENT 简要介绍(#PCDATA)>
    ]>
<书籍列表>
     <计算机书籍>
           <书名>XML的今生今世</书名>
           <价格>66.66</价格>
           <简要介绍>
            该书详细描写XML的从出生到衰老的整个过程
           </简要介绍>
     </计算机书籍>
</书籍列表>
        外部DTD:

       DTD文件book.dtd:

<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT 书籍列表(计算机书籍)*>
<!ELEMENT 计算机书籍(书名,价格,简要介绍)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 价格(#PCDATA)>
<!ELEMENT 简要介绍(#PCDATA)>
       使用外部DTD文件的XML文件

<?xml version="1.0" encoding="utf-8">
<!DOCTYPE 书籍列表 SYSTEM "book.dtd">
       每个XML文档单独定义的DTD推广位一个系统内共享的公用DTD,关键字SYSTEM用于引用一个作者或组织所编写的众多XML文档中通用的DTD。另一种外部DTD,一个由权威机构制定的,提供给特定行业或公众使用的DTD。关键字是PUBLIC。
      结构 
        所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:元素、属性、实体、PCDATA、CDATA。

     PCDATA的意思是被解析的字符数据(Parsed character data),是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。

     CDATA的意思当然就是字符数据(character data),是不会被解析器解析的文本。在这些文本中的标签不会被当做标记来对待,其中的实体也不会被展开。

        定义元素

    在一个DTD中,元素通过元素声明来进行声明

    声明一个元素:<!ELEMENT 元素名称 类别>或者<!ELEMENT 元素名称(元素内容)>

      声明空元素:<ELEMENT 元素名称 EMPTY>

          声明只有PCDATA的元素:<!ELEMENT 元素名称 (#PCDATA)>

      声明带有任何内容的元素:<!ELEMENT 元素名称 ANY>

      声明带有子元素(序列)的元素:<!ELEMENT 元素名称  (子元素名称1,子元素名称2,......)>,当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。

     声明只出现一次的元素:<!ELEMENT 元素名称 (子元素名称)> 

     声明最少出现一次的元素:<!ELEMENT 元素名称 (子元素名称+)> 

     声明出现零次或多次的元素:<!ELEMENT 元素名称 (子元素名称*)> 

     声明出现零次或一次的元素:<!ELEMENT 元素名称 (子元素名称?)> 

     声明“非.../既...”类型的内容:

      例子:<!ELEMENT note(to,from,header,(message|body))>

     声明混合型的内容:

      例子:<!ELEMENT note (#PCDATA|to|from|header|message)*>

      定义元素的属性

     在DTD中,属性通过ATTLIST声明来进行声明。

       声明属性:<!ATTLIST 元素名称 属性名称 属性类型 默认值>

       以下是属性类型的选项:


        默认值参数可使用下列值:

            小结

            通过学习,我们知道了怎么描述XML文档的结构,如何使用DTD定义一个XML文档的合法元素,以及如何在您的XML内部或者作为一个外部引用来声明DTD。您已经学习了如何为XML文档声明合法的元素、属性。如果你认为到这里DTD就学完了,那就大错特错了,请期待下一篇博客,我们将继续DTD的学习。

        

      

             

 



评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值