您的位置:首页 > 其它

【XML系列】----DTD中的元素定义

2011-06-17 15:39 363 查看
DTD的文档结构如下:

第一行是DTD声明部分,该声明与XML文档的声明语法格式相同

0到多个注释部分,DTD注释与XML文档的注释格式完全相同

0到多个<!ELEMENT…>定义的每一个就是一个XML元素

0到多个<!ATTLIST…>顶一个每一个就是一个XML元素的属性

0到多个<!ENTITY…>顶一个每一个就是一个实体

0到多个<!NOTATION…>顶一个每一个就是一个符号

它们彼此之间完全独立,无需相互嵌套。

1. 定义元素

  元素类型的定义的全称是:Element Type Definition,简称ETD,它不但会定义每个文件中可能存在的元素,给出的元素名称,而且会定义元素的具体类型。

元素类型描述主要有五种:

  a) 任意类型

    可以是以下四种中任意的内容

    例如:<!ELEMENT book ANY>

  b) 字串值

    例如:”aaa”

  c) 空元素

    <br/>

  d) 包含子元素

    元素嵌套

  e) 混合元素

    案例:

    


2. 定义子元素

  a) 定义有序的子元素

    使用英文逗号,用于分隔有序的子元素

    <!ELEMENT book(name,price,state)>

  b) 互斥的子元素

    互斥的子元素表明一些列的子元素中只能出现其中之一。

    使用”|”进行分隔

  c) 子元素出现的频率

    +(一次次或多次)

    ?(0次或一次)

    *(0次或多次)

    注意:混合类型中的频率只能按如下方式添加频率

    <!ELEMENT book(#PCDATA|子元素1|子元素2)*>

    只能在最后加

  d) 组合子元素

    <!ELEMENT book(name|price|state)>

    这种元素类型呗成为组合子元素

    组合元素也可以嵌套写:

    <!ELEMENT book((name,price)|state)>

  e) 无序的子元素

    DTD并没有定义无序子元素的语法,我们只能借助元素组进行定义

    例如:

    <!ELEMENT book(name|price|state)*>

    这时在XML文档中书写标签时,在book标签下三个子元素的顺序是无序的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: