网友俱乐部 » 网络编程 » XML教程 » 3.1.2.7 可选子元素

2007-2-25 17:33 hinet
3.1.2.7 可选子元素

3.1.2.7 可选子元素
   

字符“?”说明一个子元素是可选的,它可以出现,也可以不出现。因此,在下面的DTD中,我们规定,每一个“联系人”都必须有一个“姓名”子元素,同时或者有一个“电话”子元素,或者有一个“EMAIL”子元素,此外,它还可以包含一个“地址”子元素,也可以不包含这种元素。
    <ELEMENT 联系人(姓名,(电话|EMAIL),地址?)>
    <ELEMENT 姓名(#PCDATA)>
    <ELEMENT 电话(#PCDATA)>
    <ELEMENT EMAIL(#PCDATA)>
    <ELEMENT 地址(街道,城市,省份)>
    <ELEMENT 街道 (#PCDATA)>
    <ELEMENT 城市 (#PCDATA)>
    <ELEMENT 省份 (#PCDATA)>
根据这个DTD描述,下面的XML片段是“有效的”:
<联系人>
    <姓名>张三
    [email]zhang@aaa.com[/email]
    <地址>
        <街道>五街1234号
        <城市>北京市
        <省份>北京
   

同样,下面这段不包含“地址”元素的XML片段也是“有效的”:
<联系人>
    <姓名>张三
    [email]zhang@aaa.com[/email]

2007-2-25 17:34 hinet
3.1.2.8 混合内容

3.1.2.8 混合内容
   

当然,可能也有一些时候,你在一个元素中既希望包含子元素,也希望包含纯文本。XML中允许这种使用方法,并把这种元素称为混合内容的元素。在下面的例子中,“联系人”就是一个混合元素。

<DOCTYPE CONTACTS [     <ELEMENT 联系人(姓名|电话|EMAIL|#PCDATA)*>
    <ELEMENT 姓名(#PCDATA)>
    <ELEMENT 电话(#PCDATA)>
    <ELEMENT EMAIL(#PCDATA)>
    ]>
<联系人列表>
    <联系人>
        <姓名>张三
        <电话>(010)62345678
        [email]zhang@aaa.com[/email]
        这是关于张三的信息

2007-2-25 17:34 hinet
3.1.2.9 空元素

3.1.2.9 空元素
   

好了,前面我们已经介绍了所有可能用到的子元素的排列状况。不过,还有一种情况没有说,那就是,一个元素中不包含任何子元素,也不包含纯文本。
对于这种情况,我们可以定义一个空标记。当然,定义这样一个标记很简单,你只需要使用关键字EMPTY就可以了,例如:
    <ELEMENT HR EMPTY>
这样,在你的XML文件中,就可以使用一个空元素

页: [1]
查看完整版本: 3.1.2.7 可选子元素


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.