【问题标题】:Interpreting DTD from specifications从规范解释 DTD
【发布时间】:2018-06-02 01:17:40
【问题描述】:

我得到以下规格:

• 有一个名为 products 的根元素

• products 元素包含一系列产品子元素,一个对应于数据库中的每个产品

• 每个产品元素包含一个名称、一个价格和一个描述子元素,以及一系列商店 子元素,每个销售该产品的商店一个:

• 每个商店元素都包含一个名称、一个电话和一个标记。

到目前为止,我想出了这个:

<?xml version="1.0"?>
<!DOCTYPE exercise 3 [
<!ELEMENT products (pid, name, price, description, stores)>
<!ELEMENT pid (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT stores (store_name, phone, markup)>
<!ELEMENT store_name (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT markup (#PCDATA)>

你认为这个 DTD 符合规范吗?

【问题讨论】:

  • 我不明白这个问题。您完全按照您对产品所做的方式进行操作,为元素使用一组不同的名称。
  • 如果我包含 store 元素,我是否需要唯一的名称,因为目前它们与产品共享子元素名称?
  • 你为什么不能自己试试看它是否适用于相同的名称?如果你有,你现在就完成了。它应该是你的锻炼,而不是我们的。

标签: xml dtd


【解决方案1】:

你的 DTD 上有几个 cmets:

  1. 在文档类型声明&lt;!DOCTYPE exercise 3 [ 中,名称应与根元素相同,因此应为products 而不是exercise 3。但是,如果此 DTD 是外部文件,则不需要 doctype。如果您的 DTD 和 XML 结合在一起,您会想要使用它。有关详细信息,请参阅https://stackoverflow.com/a/5455469/317052
  2. 元素名称不需要是唯一的,因此您可以有一个name 元素,可以在productstore 中使用。

这是我根据规范要做的事情......

• 有一个名为 products 的根元素

• products 元素包含一系列产品子元素, 数据库中的每个产品一个

<!ELEMENT products (product*)>

• 每个产品元素包含一个名称、一个价格和一个 description 子元素和一系列 store 子元素,一个用于 每家销售该产品的商店:

<!ELEMENT product (name, price, description, store*)>

• 每个商店元素都包含一个名称、一个电话和一个标记。

<!ELEMENT store (name, phone, markup)>

这是完整的 DTD,为了便于阅读,添加了空格...

<!ELEMENT products      (product*)                         >
<!ELEMENT product       (name, price, description, store*) >
<!ELEMENT store         (name, phone, markup)              >
<!ELEMENT name          (#PCDATA)                          >
<!ELEMENT price         (#PCDATA)                          >
<!ELEMENT description   (#PCDATA)                          >
<!ELEMENT phone         (#PCDATA)                          >
<!ELEMENT markup        (#PCDATA)                          >

【讨论】:

    猜你喜欢
    • 2012-07-04
    • 2013-04-02
    • 1970-01-01
    • 2011-01-26
    • 2020-10-17
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多