我有以下规格:
•有一个名为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符合规格吗?
答案 0 :(得分:0)
关于您的DTD的一些评论:
<!DOCTYPE exercise 3 [
中,名称应与根元素相同,因此exercise 3
应该是products
而不是name
。但是,如果此DTD是外部文件,则您不应该需要doctype。如果将DTD和XML组合在一起,您可能希望使用它。有关详细信息,请参阅https://stackoverflow.com/a/5455469/317052。product
元素,可以在store
和<!ELEMENT products (product*)>
中使用。以下是我根据规范做的事情......
•有一个名为products
的根元素•products元素包含一系列产品子元素, 一个用于数据库中的每个产品
<!ELEMENT product (name, price, description, store*)>
•每个产品元素包含一个名称,一个价格和一个 description子元素,以及一系列商店子元素,一个用于 每个销售该产品的商店:
<!ELEMENT store (name, phone, markup)>
•每个商店元素包含一个名称,一个电话和一个标记。
<!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) >
这里是完整的DTD,其中添加了空格以便于阅读......
<select name="input_12" id="input_37_12" class="medium gfield_select" tabindex="5" aria-required="true" aria-invalid="false">
<option value="Please Select" selected="selected">Please Select</option>
<option value="1">1</option>
<option value="2-5">2-5</option>
<option value="6-15">6-15</option>
<option value="16-30">16-30</option>
<option value="31-100">31-100</option>
<option value="101-250">101-250</option>
<option value="251-1000">251-1000</option>
<option value="1001-2500">1001-2500</option>
<option value="2501 +">2501 +</option>
</select>