在DTD文件中,如何声明元素必须具有属性。 此属性必须是以下三个之一:si,sl或ii
<bla si="foo">
<bla ii="foo">
<bla sl="foo">
有效,并且:
<bla> or
<bla somthing="foo"> or
<bla si="foo" ii="bar">
一切都无效
提前致谢
编辑:
这不是诀窍,但它很接近:
<!ATTLIST bla si CDATA #REQUIRED
sl CDATA #REQUIRED
ii CDATA #REQUIRED
>
它需要所有属性,但我想强制,只有一个属性存在。
答案 0 :(得分:4)
在DTD中,属性不能相互依赖。您可以使用#REQUIRED
或#IMPLIED
使任何属性成为必需属性或可选属性,但不能以其他方式强制必须存在的属性数。
通常,一个好的设计实践是仅使用属性来逐项列出元素的特征,而不是改变元素的含义,并保持属性彼此独立。如果这些是您的目标,请考虑制作(替代)子元素或提供“host”元素的替代版本,以便它们可以具有不同的属性集。