网友俱乐部 » » XML教程 » 3.1.2.3 有顺序的子元素

2007-2-25 17:32 hinet
3.1.2.3 有顺序的子元素

3.1.2.3 有顺序的子元素
   

一个元素的各个子元素之间可以以任意顺序出现,也可以强制遵循一定的顺序。
不要求顺序的子元素
考虑下面的DTD定义:
    <ELEMENT 联系人(姓名 EMAIL)>
    <ELEMENT 姓名(#PCDATA)>
    <ELEMENT EMAIL(#PCDATA)>
遵从这个DTD的XML文件可以为:
<联系人>
    <姓名>张三
    [email]zhang@aaa.com[/email]

同样,下面这个XML文件也是有效的:
<联系人>
    [email]zhang@aaa.com[/email]
    <姓名>张三

我想大家已经注意到了,由于我们在DTD定义中仅仅用空白符分隔了元素“联系人”的两个子元素,这说明我们并没有严格要求两个元素出现的顺序,因此上面两种写法都是允许的。
要求顺序的子元素
相反,在上面例子中,如果我们使用逗号“,”来分隔两个子元素,那么XML文件中,元素“姓名”就必须出现在元素“EMAIL”前面。也就是说,如果我们把DTD定义为下面的形式:
    <ELEMENT 联系人(姓名, EMAIL)>
    <ELEMENT 姓名(#PCDATA)>
    <ELEMENT EMAIL(#PCDATA)>
那么下面的文件是有效的:
<联系人>
    <姓名>张三
    [email]zhang@aaa.com[/email]

而下面这个文件不是有效的,因为它把元素“EMAIL”放在了元素“姓名”之前,这是不合规定的:
<联系人>
    [email]zhang@aaa.com[/email]
    <姓名>张三

页: [1]
查看完整版本: 3.1.2.3 有顺序的子元素


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