练习 1.2:定制 DTD

在开始之前,必须完成 练习 1.1:创建 DTD

在本节中,将执行下列任务来定制 DTD:

  1. 创建并命名元素
  2. 编辑元素的内容模型
  3. 将属性添加至元素。

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

现在您应该保存 DTD。单击文件 > 保存

现在,您已经完成了 CDLib 定义。它看上去应类似于下图:

现在,您可以开始进行练习 1.3:创建并编辑 XML 文件了。

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.