哪个XML DTD是有效的
我在工作表上有这个问题,但我现在已经错了5次了,有人能帮忙吗 下面是一个XML DTD:哪个XML DTD是有效的,xml,database,dtd,Xml,Database,Dtd,我在工作表上有这个问题,但我现在已经错了5次了,有人能帮忙吗 下面是一个XML DTD: <!DOCTYPE meal [ <!ELEMENT meal (person*,food*,eats*)> <!ELEMENT person EMPTY> <!ELEMENT food EMPTY> <!ELEMENT eats EMPTY> <!ATTLIST person name ID #REQUIR
<!DOCTYPE meal [
<!ELEMENT meal (person*,food*,eats*)>
<!ELEMENT person EMPTY>
<!ELEMENT food EMPTY>
<!ELEMENT eats EMPTY>
<!ATTLIST person name ID #REQUIRED>
<!ATTLIST food name ID #REQUIRED>
<!ATTLIST eats diner IDREF #REQUIRED dish IDREF #REQUIRED>
]>
]>
以下哪些文档与DTD匹配
<meal>
<person name="Alice"/>
<food name="salad"/>
<eats diner="Alice" dish="salad"/>
<person name="Bob"/>
<food name="salad"/>
<eats diner="Bob" dish="salad"/>
<person name="Carol"/>
<food name="sandwich"/>
<eats diner="Carol" dish="sandwich"/>
</meal>
- 只有第二个
- 只有第二个和第三个
- 只有第一个和第三个
- 只有第一个
膳食
必须包含零个或多个人
,然后是零个或多个食物
,然后是零个或多个食物
第三个无效,因为没有值为food
的ID类型属性。(dish
是一种属性类型IDREF
)只有第二种
第一个是无效的,因为膳食
必须包含零个或多个人
,然后是零个或多个食物
,然后是零个或多个食物
第三个无效,因为没有值为
food
的ID类型属性。(dish
是一种属性类型IDREF
)第一个示例具有两个id属性值相同的元素。
被重复,因此这是无效的。(如另一个答案所述,顺序很重要)
第三个示例具有一个idref属性值,该属性不是任何元素的id属性
第二个,虽然在我们看来有点奇怪,因为人类用
解释它是有效的,因为这些属性在其他地方都是idref属性。dtd没有指定idref必须是特定类型的元素所具有的id属性,即使这是我们理解它的唯一方式。第一个示例中有两个id属性值相同的元素。
被重复,因此这是无效的。(如另一个答案所述,顺序很重要)
第三个示例具有一个idref属性值,该属性不是任何元素的id属性
第二个,虽然在我们看来有点奇怪,因为人类用
解释它是有效的,因为这些属性在其他地方都是idref属性。dtd没有指定idref必须是特定类型的元素所具有的id属性,即使这是唯一对我们有意义的方法。在第一个实例中很好地抓住了重复id。我在手机上看到了这一点,一旦发现了明显的问题,我就不再寻找问题+1在第一个实例中,对重复ID的捕获良好。我在手机上看到了这一点,一旦发现了明显的问题,我就不再寻找问题+1.
<meal>
<person name="Alice"/>
<person name="Bob"/>
<person name="Carol"/>
<person name="Dave"/>
<food name="salad"/>
<food name="turkey"/>
<food name="sandwich"/>
<eats diner="Alice" dish="turkey"/>
<eats diner="Bob" dish="salad"/>
<eats diner="turkey" dish="Dave"/>
</meal>
<meal>
<person name="Alice"/>
<person name="Bob"/>
<food name="salad"/>
<eats diner="Alice" dish="food"/>
<eats diner="Bob" dish="food"/>
</meal>