网友俱乐部 » » XML教程 » 3.1.3.6 ID和IDREF

2007-2-25 17:35 hinet
3.1.3.6 ID和IDREF

3.1.3.6 ID和IDREF
   

ID类型
ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接。在大多数情况下,ID由处理文件的程序或脚本语言使用。
ID的值必须是一个有效的XML名称,它由字母、数字或下划线开始,名字中不能出现空白符。另外一般而言,不要给ID类型的属性事先指定缺省值,这很容易引起不同的元素具有相同的标识的情况,更不能使用FIXED型的缺省值。此类属性经常使用REQUIRED缺省类型,当然,这也不是必须的。有的应用并不要求每个元素都有自己的标识,所以,也可以使用IMPLIED缺省类型。
      encoding="GB2312"
      standalone = "yes"?>
<DOCTYPE 联系人列表[    <ELEMENT 联系人(姓名,EMAIL)>
    <ELEMENT 姓名(#PCDATA)>
    <ELEMENT EMAIL(#PCDATA)>
    <ATTLIST 联系人 编号 ID #REQUIRED>
    ]>
<联系人列表>
    <联系人 编号="1">
        <姓名>张三
        [email]zhang@aaa.com[/email]
   
    <联系人 编号="2">
        <姓名>李四
        [email]li@bbb.org[/email]
   

 
IDREF类型
IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。例如下面的例子:
      encoding="GB2312"
      standalone = "yes"?>
<DOCTYPE 联系人列表[    <ELEMENT 联系人(姓名,EMAIL)>
    <ELEMENT 姓名(#PCDATA)>
    <ELEMENT EMAIL(#PCDATA)>
    <ATTLIST 联系人 编号 ID #REQUIRED>
    <ATTLIST 联系人 上司 IDREF #IMPLIED>
    ]>
<联系人列表>
    <联系人 编号="2">
        <姓名>张三
        [email]zhang@aaa.com[/email]
   
    <联系人 编号="1" 上司="2">
        <姓名>李四
        [email]li@aaa.com[/email]

2007-2-25 17:35 hinet
3.1.3.7 NMTOKEN和NMTOKENS
   

类型NMTOKEN和NMTOKENS是诸多属性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的名字。当需要把一个元素和其它的元件,例如一个JAVA类或一个安全算法,相联系时,可以让它们助你一臂之力。请看下面的例子:
关于元素的定义:
<ELEMENT 数据(#PCDATA)>
<ATTLIST 数据
    授权用户 NMTOKENS #IMPLIED
>
XML文件:
<数据 安全性="ON" 授权用户 = "IggieeB SelenaS GuntherB">
blah blah blah

2007-2-25 17:35 hinet
3.1.3.8 NOTATION类型
   

    NOTATION类型允许属性值为一个DTD中声明的符号,这个类型对于使用非XML格式的数据非常有用。
现实世界中存在着很多无法或不易用XML格式组织的数据,例如图象、声音、影象等等。对于这些数据,XML应用程序常常并不提供直接的应用支持。通过为它们设定NOTATION类型的属性,可以向应用程序指定一个外部的处理程序。例如,当你想要为一个给定的文件类型指定一个演示设备时,可以用NOTATION类型的属性作为触发。
要使用NOTATION类型作为属性的类型,首先要在DTD中为可选用的记号作出定义。定义的方式有两种,一种是使用MIME类型,形式是:
<!NOTATION 记号名 SYSTEM "MIME类型">
再有一种是使用一个URL路径,指定一个处理程序的路径。
<!NOTATION 记号名 SYSTEM "URL路径名">
在下面这个例子中,为"电影"元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。
      encoding="GB2312"
      standalone = "yes"?>
<DOCTYPE 文件[    <ELEMENT 电影 EMPTY>
    <ATTLIST 电影 演示设备 NOTATION ( mp | gif ) #REQUIRED>
    <NOTATION mp SYSTEM "movPlayer.exe">
    <NOTATION gif SYSTEM "Image/gif">  
    ]>
<文件>
    <电影 演示设备 = "mp"/>

页: [1]
查看完整版本: 3.1.3.6 ID和IDREF


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