< 上一课 | 下一课 >

课程 1.2:定制 DTD

本课教您在 DTD 文件中创建并修改元素和属性。

开始之前,必须先完成课程 1.1:创建 DTD
在本课中,您将在 DTD 中定义下列元素:
元素 描述
CDLib 包含了所有其他元素的 CD 库根元素。
CD 包含关于 CD 的信息的容器元素。
artist 包含 CD 上的音乐家姓名的元素。
title 一个用来描述 CD 标题的属性。
format 一个用来描述此标题的 CD 数目的元素。
description 一个用来描述 CD 的元素。
price 一个用来提供 CD 价格的元素。

创建并命名元素

遵循以下步骤将上表中列示的元素添加至 DTD:
  1. 在“大纲”视图中,右键单击 DTD 并单击添加元素
  2. 在“属性”视图中,将元素的名称更改为 CDLib
  3. 再次右键单击 DTD,然后单击添加元素。在“属性”视图中,将元素的名称更改为 CD
  4. 重复步骤 3 来创建下列元素:artistformatdescriptionprice

编辑元素的内容模型

元素的内容模型表示元素内可能包含的任何数据。当创建元素时,在“大纲”视图中将自动出现一个节点用来表示该元素的内容模型类型,缺省情况下,内容模型类型为 EMPTY,即不包含其他任何元素或文本。需要更改每个元素的值:
  1. 在“大纲”视图中的 CDLib 下面选择 EMPTY。在“属性”视图中单击其他选项卡。在“内容类型”列表中,选择 CD
  2. 在“大纲”视图的父元素 CD(不是 CDLib 下面的子元素)下,选择 EMPTY
  3. 在“属性”视图中,从内容类型列表中选择子内容。这将在 CD 元素下面添加一个组节点。
  4. 展开组节点并选择 newChild。然后,在“属性”视图中,从内容模型列表中选择 artist
  5. 右键单击节点。在其弹出菜单中,选择将元素添加至内容模型。这将添加另一个子元素。
  6. 选择新的子元素。在“属性”视图中,对于新的子元素,从内容模型列表中选择 format
  7. 重复步骤 5 和步骤 6 以创建 descriptionprice 子元素。
  8. 单击名为 artist 的父元素(不是 CD 下面的子元素)并将其展开。
  9. 单击 EMPTY。在“属性”视图中单击其他选项卡。在“内容类型”列表中,选择 (#PCDATA)
  10. formatdescriptionprice 元素重复步骤 8 和步骤 9。

现在,您已经为每个元素指定了内容模型。CDLib 元素只能包含 CD 元素,而 CD 元素可以包含 artist、format、description 和 price 元素。artist、format、description 和 price 元素不能包含其他任何元素,它们只能包含文本。

既然您想要 CD 元素能够包含多个元素,就应该将其内容类型定义为子内容。这将导致自动将组节点添加至 CD 元素。组节点使您能够根据需要来将多个元素添加至元素的内容模型。它还确定元素是按顺序排序还是作为选项来提供(只能选择一个选项或另一个选项)以及元素组可出现的频率。

编辑元素的属性

一个 CD 库通常包含多个 CD。要在 DTD 中指示这种情况,您需要更改 CDLib 元素的内容模型:

  1. 在“大纲”视图中,选择在 CDLib 元素下面的 CD 子元素。在“属性”视图中单击属性选项卡。“属性”视图显示其内容模型的出现次数为仅一次,即 CDLib 只能包含一个 CD 元素。
  2. 单击出现次数下拉列表中的一次或多次,以便将它的内容模型更改为包含一个或多个 CD。
  3. 查看“源代码”视图的内容。CDLib 元素看起来应类似如下:<!ELEMENT CDLib (CD+)>

CD 库现在可以包含您想要添加的任意数量的 CD。

编辑子元素的内容模型

还需要对 artistformat 内容模型做出一些更改:

  1. 对于 CD,可以有多个收录的音乐家。通过选择 artist 子元素(即,CD 下面列示的 artist 元素)并将其出现次数更改为一次或多次来指示这种情况。
  2. 让一个 CD 上出现尽量多的标题。对于此类标题,format 元素是可选的。通过选择 format 子元素并将其出现次数更改为可选指示这种情况。
生成的 CD 元素在“源代码”视图中看起来应类似如下:
<!ELEMENT CD (artist+,format?,description,price)>

添加属性

现在,您需要将 title 属性添加至 CD 元素,它是父元素,而不是 CDLib 下的子元素。为此,请执行下列步骤:
  1. 在“大纲”视图中,右键单击CD父元素,然后选择添加属性注意:所有元素都必须将它们的属性列示在属性列表中,因此,如果将属性添加至尚未带有属性列表的元素,则会自动创建属性列表并将该新属性添加至此列表。
  2. 展开属性列表并选择 NewAttribute。在“属性”视图中,将属性的名称更改为 title。属性类型值缺省为字符数据(CDATA),并且属性缺省值应该已设置为 #IMPLIED。
  3. 要保存 DTD,请选择文件 > 保存
现在,您已经完成了 CDLib 定义。它看起来应类似如下:

课程要点

DTD 编辑器允许您有效地创建并编辑元素和属性。

在完成本课程之后,您应该能够完成下列任务:
  • 创建并命名元素。
  • 编辑元素的内容模型。
  • 对元素添加属性。
< 上一课 | 下一课 >