• 热门标签

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

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

]>
<DOCUMENT>
<TITLE>A Very Boring Document</TITLE>
&SIGNATURE;
</DOCUMENT>
XML 实用大全
第 293 页
9.8 本章小结
从本章中,可了解如何从内部和外部实体开始创建XML 文档。详细地说,学习了以下内容:
• 实体就是组成文档的物理存储单元。
• 实体内容为:结构完整的XML 文档、其他形式的文本和二进制数据。
• 内部实体完全在文档内部定义,外部实体可引入通过URL 定位的不同资源的内容。
• 通用实体引用具有“&name;”的形式,通常用于文档的内容中。
• 内部通用实体引用由实体声明中给定的实体值所替换。
• 外部通用实体引用由URL 定位的数据所替换,该URL 为实体声明中SYSTEM 关键词后的内容规定。
• 内部参数实体引用具有“%name;”的格式,只在DTD 中使用。
• 可用外部参数实体引用和不同的DTD。
• 外部实体引用提供创建大型复杂文档的能力。
• XML 标准一致性的第三层含义:结构完整,但不合法。不合法的原因在于DTD 不完整或文档不满足DTD 的约束
条件。
当文档使用了属性的时候,必须在DTD 中对属性加以声明。下一章讲述如何在DTD 中声明属性,以及如何将约束条件附加于
属性值进行限制。
XML 实用大全
第 294 页
第10 章 DTDs 中的属性声明
一些XML 元素具有属性。属性包含应用程序使用的信息。属性仅在程序对元素进行读、写操作时,提供元素的额外信息(如
ID 号等),对于人类读、写元素来说是毫无意义的。在本章中学习各种属性类型和如何在DTD 中声明属性。
本章内容如下:
• 什么是属性?
• 如何在DTD 中声明属性
• 如何声明多个属性
• 如何指定属性的缺省值
• 属性类型
• 预定义属性
• 基于属性的棒球比赛统计数据的DTD
10.1 什么是属性?
在第3 章曾经讨论过开始标记和空标记可包含由等号“=”分割开的成对的属性名和属性值。例如:
<GREETING LANGUAGE= "English">
Hello XML!
<MOVIE SOURCE= "WavingHand.mov" />
</GREETING>
上述例子中,GREETING 元素具有LANGUAGE 属性,其属性值为ENGLISH。MOVIE 元素具有SOURCE 属性,其属性值为
WavingHand.mov。GREETING 元素内容为Hello XML!。书写内容的语言对内容本身来说是一个有用的信息,可是语言不是内
容的一部分。
与此相似,MOVIE 元素内容为保存在WavingHand.mov 文件中的二进制数据。尽管文件名告诉我们到何处可找到元素内容,
但它本身不是元素内容。再次强调,属性包含有关元素内容信息,而不是元素内容本身。
元素可具有多个属性,例如:
<RECTANGLE WIDTH= "30" HEIGHT= "45" />
<SCRIPT LANGUAGE= "javascript" ENCODING= "8859_1" >...</SCRIPT>
上例中,SCRIPT 元素属性LANGUAGE 的值为javascript,SCRIPT 元素属性ENCODING 的值为8859_1;RECTANGLE 元素属性WIDTH
的值为30;RECT 元素属性HEIGHT 的值为45。这些属性值均为字符串数据,不是数字型数据。
结束标记不能带属性,下例视为非法:
<SCRIPT>...</SCRIPT LANGUAGE= "javascript" ENCODING= "8859_1" >
XML 实用大全
第 295 页
10.2 在DTD 中声明属性
与元素和实体相似,为保持文档的合法性,需要在文档的DTD 中声明属性。<!ATTLIST>标记用于声明属性,其形式如下:
<!ATTLIST Element_name Attribute_name Type Default_value>
Element_name 为拥有该属性的元素名。Attribute_name 为属性名,Type 为表10-1 列出的10 种有效属性类型的一种。最常
用的属性类型为CDATA。最后,若未规定属性值,则属性值为Default_value。
例如,研究下列元素:
<GREETING LANGUAGE= "Spanish">
Hola!
</GREETING>
在DTD 中,可按如下格式声明该元素:
<!ELEMENT GREETING (#PCDATA)>
<!ATTLIST GREETING LANGUAGE CDATA "English">
<!ELEMENT>标记简单地说明greeting 元素包含可析字符数据,这里没什么新内容。<!ATTLIST>标记表明GREETING 元素拥有
LANGUAGE 属性,其值为CDATA 类型,本质上与元素内容的#PCDATA 相同。若所看见的GREETING 标记中没有LANGUAGE 属性,
则LANGUAGE 属性值为缺省指定的English。
表10-1 属性类型
类 型 含 义
CDATA 字符数据不是标记的文本
Enumerated 可能取值的列表,可从中选出正确的值
ID 不能被文档中其他任何ID 类型属性共享的数字,具有唯一性
IDREF 文档中元素的ID 类型属性的值
IDREFS 由空格分开的若干个ID
ENTITY 在DTD 中声明的实体名
ENTITIES 在DTD 中声明的若干个实体的名字,彼此间由空格分开
NMTOKEN XML 名称
NOTATION 在DTD 中声明的注释名
XML 实用大全
第 296 页
NMTOKENS 由空格分开的多个XML 名称
在各自的标记中分别声明各自的属性列表。属性所属元素的名字包含在<!ATTLIST>标记中,如上例中的属性声明仅用于
GREETING 元素。如果其余元素也具有LANGUAGE 属性,就需要各自独立的<!ATTLIST> 声明。
对大部分声明而言,属性声明在文档中出现的顺序并无严格要求,可位于与其相连的元素声明之前或之后。实际上,甚至可
以对同一属性进行多次声明。这时,第一个声明首先执行。
尽管非同寻常,甚至可以为并不存在的标记声明属性。在最初编辑DTD 时,可以声明一些并不存在的属性,计划在以后再返
回这里继续这些工作,为这些属性声明元素。
XML 实用大全
第 297 页
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(85)