• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:24来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

一个元素不能具有超过一个的ID 类型的属性。
一般来说,ID 属性的存在只是为了处理数据的程序方便。在许多情况下,除了ID 属性值外,多个元素可能会是一样的,如
果以可以预见的方式来选取ID 的话,程序就可以列举出文档中所有不同类型的元素或同一类型的不同元素。
ID 类型属性与#FIXED 类型的属性不兼容。ID 类型属性不能同时具有#FIXED 类型的属性,因为#FIXED 类型的属性仅能拥有
一个单一的值,而每个ID 类型属性都具有不同的值。大部分ID 属性使用#REQUIRED 值。如清单10-1 例所示:
清单10-1:required ID 属性类型
<?xml version="1.0" standa lone="yes"?>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (P*)>
<!ELEMENT P (#PCDATA)>
<!ATTLIST P PNUMBER ID #REQUIRED>
]>
<DOCUMENT>
<P PNUMBER="p1">The quick brown fox</P>
<P PNUMBER="p2" >The quick brown fox</P>
XML 实用大全
第 303 页
</DOCUMENT>
10.5.6 IDREF 属性类型
IDREF 类型的属性值为文档中另一个元素的ID。例如,清单10-2 表明IDREF 和ID 属性用于子元素和父元素之间的连结。
清单10-2:family.xml
<?xml version= "1.0" standalone= "yes"?>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (PERSON*)>
<!ELEMENT PERSON (#PCDATA)>
<!ATTLIST PERSON PNUMBER ID #REQUIRED>
<!ATTLIST PERSON FATHER IDREF #IMPLIED>
<!ATTLIST PERSON MOTHER IDREF #IMPLIED>
]>
<DOCUMENT>
<PERSON PNUMBER= "a1" >Susan</PERSON>
<PERSON PNUMBER= "a2" >Jack</PERSON>
<PERSON PNUMBER= "a3" MOTHER= "a1" FATHER= "a2" >Chelsea</PERSON>
<PERSON PNUMBER= "a4" MOTHER= "a1" FATHER= "a2" >David</PERSON>
</DOCUMENT>
当在文档结构树上并不冲突的两个元素之间需要建立连结时,通常使用这种并不普遍但很重要的类型。在清单10-2 中,每
个子元素都有FATHER 和MOTHER 属性给出,这两个属性包含的是对应的ID 属性。
在清单10-2 中,无法简洁地使用IDREF 建立父元素到子元素之间的链接,这是因为每个父元素都具有不确定的子元素数目。
解决的方法就是,可以把所有同一父元素的子元素组成FAMILY 元素,然后链接到FAMILY 上。即使使用这种方法,当面对半
同属(共享唯一一个父元素)的元素时,也不好用。简而言之,IDREF 适用于多对一的关系,不适合一对多的关系。
10.5.7 ENTITY 属性类型
ENTITY 类型的属性提供把外部二进制数据和外部不可析实体链接到文档中的能力。ENTITY 属性值为DTD 中声明的不可析通
用实体名,该实体名链接到外部实际数据。
XML 实用大全
第 304 页
经典的ENTITY 属性的例子就是图像。图像由另一URL 处可用的二进制数据组成。假如XML 浏览器支持ENTITY 类型属性,在
DTD 中按如下方式声明,就可在XML 文档中包括一幅枷瘢?/p>
<!ELEMENT IMAGE EMPTY>
<!ATTLIST IMAGE SOURCE ENTITY #REQUIRED>
<!ENTITY LOGO SYSTEM "logo.gif">
然后在期望图像出现在文档中的位置处,就可插入如下的IMAG 标记:
<IMAGE SOURCE="LOGO"/>
所有XML 浏览器自动识别的过程并不是在变魔术,这仅仅是一种简单的技术,浏览器和其余应用程序可能采用也可能不采用
这种技术在文档中嵌入非XML 数据。
这种技术在第11 章 “嵌入非XML 数据” 中有更深入的探讨。
10.5.8 ENTITIES 属性类型
ENTITIES 属性类型几乎就是ENTITY 的复数形式。若干由空格分隔的不可析实体名组成ENTITIES 类型属性的值。每一实体
名指向一个外部非XML 数据资源。这种类型属性的用途之一为:使不同图片之间的切换变得光滑平顺,如下例所示:
<!ELEMENT SLIDESHOW EMPTY>
<!ATTLIST SLIDESHOW SOURCES ENTITIES #REQUIRED>
<!ENTITY PIC1 SYSTEM "cat.gif">
<!ENTITY PIC2 SYSTEM "dog.gif">
<!ENTITY PIC3 SYSTEM "cow.gif">
然后在文档中希望显示图片的位置上插入如下标记:
<SLIDESHOW SOURCES="PIC1 PIC2 PIC3">
再一次声明,这不是所有(或任意)XML 浏览器可以自动识别的通用格式;仅仅是某些浏览器和其余的应用程序可能采用也
可能不采用的在文档中嵌入非XML 数据的方法而已。
10.5.9 NOTATION 属性类型
NOTATION 属性类型指定属性值为DTD 中声明的记号名。这一属性的缺省值也必须为DTD 中声明的记号名。在下一章中介绍
记号的详细内容。简单地说,记号可标识非XML 数据的格式;例如为不可析实体指定一帮助程序。
第11 章 “嵌入非XML 格式数据”讲述了这方面的内容。
XML 实用大全
第 305 页
例如,SOUND 元素的PLAYER 属性具有NOTATION 类型和缺省值MP,从而标识非XML 数据的格式,记号MP 表示一个特殊类型
的声音文件:
<!ATTLIST SOUND PLAYER NOTATION (MP) #REQUIRED>
<!NOTATION MP SYSTEM "mplay32.exe">
也可提供不同记号的选择。这样做的用法之一是为不同的平台指定不同的帮助应用程序。浏览器可从中选取一可用的值。这
种情况下,NOTATION 关键词后紧跟一对圆括号,括号内包含由竖直线分隔的、许可的记号名列表。例如:
<!NOTATION MP SYSTEM "mplay32.exe">
<!NOTATION ST SYSTEM "soundtool">
<!NOTATION SM SYSTEM "Sound Machine">
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(88)