| 建立有效的XML文件 |
|
| 来源:网络收集 作者: 加入时间:2006-10-27 访问次数:6 [大 中 小] |
|
属性列表宣告 。每一个属性列表宣告定义了可以用在特定元素型态的属性的名字,以及这些属性的数据型态与默认值。本章稍后会详细介绍每一种宣告。 实体宣告 。你可以使用实体来储存常用的文字区块,或将非XML 的数据包括在文件中。第六章中将讨论实体的相关知识。 标签宣告 。卷标描述了数据的格式,或负责识别用来处理特定格式的程序。第六章中将讨论标签。 处理指令 。第四章的<使用处理指令>中已讨论过。 批注 。第四章的<加入批注>中已讨论过。 参数实体参照 。上述的任何项目可以被包含在参数实体中,并藉由参数实体参照来加入。到第六章之前,这个指令对你不具任何意义,现在将它含括进来是为了有效性的考量。 注意 在这个章节(以及下面章节中的范例)中所讨论的DTD 的型态被称为内部的DTD 子集,因为它整个被包含在文件的文件型态宣告中。在本章的结尾附近,你将学习如何使用位在个别档案中的DTD,它被称为外部的DTD 子集。
宣告元素的型态
在有效的XML文件中,你必须明确地宣告你在文件中使用的每一个元素的型态,将它宣告于DTD的元素型态宣告(element type declaration)中。一个元素型态宣告代表元素型态的名称与允许的元素内容(通常指定子元素可以发生的顺序)。DTD 中的元素型态宣告-类似数据库的规则-安排了文件的整个逻辑结构。即是,元素型态宣告代表文件包含的元素型态、元素的顺序,与元素的内容规格。
元素型态宣告的类型
元素型态宣告拥有下列的一般格式:
这里的Name 是被宣告元素型态的名称(想复习合法元素名称的规则,请参阅第三章中的 <元素解析> )。而contentspec 指的是内容规格(content specification),定义了元素可以包含的东西。下一节描述了你可以使用的不同型态的内容规格。 下面是一个名为TITLE 的元素型态的宣告,它只能包含字符数据(子元素则不可以):
而下面则是一个名为GENERAL 的元素型态的宣告,可以包含任何型态的内容:
下面的范例是一个内含两个元素型态的有效XML 文件。COLLECTION 元素型态的宣告代表它可以包含一个或多个CD 元素,而且CD 元素型态的宣告指定了它只能包含字符数据。注意,范例文件符合了这些宣告,因而就是有效的:
[
] >
Mozart Violin Concertos 1,2,and 3 Telemann Trumpet Concertos Handel Concerti Grossi Op.3
注意 在给定的文件中你只能宣告特定的元素型态一次。
元素内容的规格
你可以指定元素的内容-意即,在元素型态宣告的contentspec 部分指定-利用下面四种方式: EMPTY 内容 。你必须使用EMPTY 关键词来代表元素必须是空的-意即不能拥有内容。下面就是一个这样的范例:
下面是一个你可以放入文件中的正确IMAGE 元素:
![]()
![]() ANY 内容 。你必须使用ANY 关键词来表明元素可以拥有任何型式的内容。意即,这种型态的元素可以包含零或多个子元素,利用任何顺序与次数的重复,使用或不使用字符数据。这是最松散的内容规格,而建立的则是不含内容限制的元素型态。下面就是这种宣告的一个例子。
元素内容(也称为子内容) 。利用这种型态的内容规格,元素可以包含子元素,但却不能直接包含字符数据。下一节中将描述这个选项。 混合内容 。利用这种型态的内容规格,元素可以包含任何数量的字符数据,与随意散置的相同型态字符。本章稍后将描述这个选项。
|
|
|
|
|
|