在XMLDTD中,一个属性怎么可能有两个值?

在XMLDTD中,一个属性怎么可能有两个值?,xml,dtd,Xml,Dtd,试图实现这样的目标 ATTLIST employee role (leader|analyst|leader,analyst) 我不能把它变成一个元素;它需要是一个属性 DTD似乎不喜欢表达式中的逗号。XML中的属性不能包含元素 试图以任何方式将结构添加到属性中都是与实际情况背道而驰的。如果必须这样做,请保持简单:可以通过空格或逗号分隔的值表示列表。再进一步,就需要一个独立的微解析器来解析属性值,它不同于XML解析器。这不是一个好主意,不要期望DTD提供的支持超出NMTOKENS、IDREFS

试图实现这样的目标

ATTLIST employee role (leader|analyst|leader,analyst)
我不能把它变成一个元素;它需要是一个属性


DTD似乎不喜欢表达式中的逗号。

XML中的属性不能包含元素

试图以任何方式将结构添加到属性中都是与实际情况背道而驰的。如果必须这样做,请保持简单:可以通过空格或逗号分隔的值表示列表。再进一步,就需要一个独立的微解析器来解析属性值,它不同于XML解析器。这不是一个好主意,不要期望DTD提供的支持超出
NMTOKENS
IDREFS
实体提供的支持范围

另请参见:

您可以执行以下操作:

<!ATTLIST employee role (leader|analyst|leader) "analyst">


如果使用XML模式描述文档,则可以使用
列表
类型。使用空格而不是逗号。这就是html类属性的工作原理。虽然从技术上讲,它只是被定义为一个字符串,而不是xhtml DTD中的任何结构