XML自学笔记14——DTD的结构组成(元素类型声明)

标签:
教育 |
分类: 建站笔记 |
<IELEMENT
元素内容说明可以指明五种可能的元素内容形式:#PCDATA、子元素、混合内容、EMPTY和ANY。
(一)元素内容说明——#PCDATA
关键字#OCDATA说明元素包含字符数据。
例子:
http://s7/mw690/54c367d4gx6BKhChtX076&690
(二)元素内容说明——子元素
当一个元素只包含子元素,而没有字符数据时,则称此元素类型具有元素型内容。在该类型的元素声明时,通过内容模型来指定在其内容上的约束。内容模型是决定子元素类型和子元素出现顺序的一种简单语法。
内容模型的语法:
1、直接在xml中给出DTD(中括号中)的元素类型声明
一个元素包含一个子元素,同时对子元素进行类型声明。
http://s8/mw690/54c367d4gx6BKhH4YBh67&690
公司在XML文档又为员工添加了姓名、年龄、性别信息
如果公司希望每名员工至少一个爱好,我们可以用+号代替*号,加号说明文档中可以有一个或者多个元素
http://s10/mw690/54c367d4gx6BKhU9Wvn99&690
注意:利用括号、逗号、竖线、星号、加号的组合,可以说明很复杂的内容模型。我们看下面的例子:
<!ELEMENT 简历 (名字,性别,年龄,(电话|手机),家庭住址?,爱好*,教育经历+,工作经验*)>
这说明简历要有名字,性别,年龄,并按照这个顺序出现,电话和手机任选一个,可以填一个家庭住址或者不填,然后是0个或多个兴趣爱好,至少有一个教育经历或多个工作经验。
内容模型虽然简单但是可以产生灵活多样的结构。
(三)元素内容说明——混合内容
1、说明元素即可以包含字符数据,也可以包含子元素,混合内容必须被定义0个或多个。
例子:
在使用混合内容模型时,#PCDATA关键字必须是模型中的第一个选项,不能在模型中使用逗号、问号和加号。用竖线分隔#PCDATA和子元素名的列表是合法的,其它用法都是不合法的。
关键字EMPTY表明该元素既不包含字符数据,也不包含子元素,是一个空元素。
如果在文档中,元素本身已经表示了明确的含义,就可在在DTD中用关键字EMPTY来声明空元素。例如:
<!ELEMENT
例如: