使用DTD验证这里,我被告知以下DTD是无效的。

<!ENTITY % text "(#PCDATA|L)*">
<!ELEMENT H         (%text;)+>
<!ELEMENT L         (#PCDATA)>

在错误信息是:“‘’一个‘(’字符或元素类型元素类型的声明中的要求的”在线2 H,柱22

任何人都可以请指出为何无效?我怎样才能使它有效吗?该错误信息是不完全对我很友好。感谢。

有帮助吗?

解决方案

可以不强制与混合内容元素必须具有至少一个子节点。您的DTD变得

<!ELEMENT H         ((#PCDATA|L)*)+>

当实体已展开。对于具有混合内容元素唯一允许的形式是

(#PCDATA | A | B | C)*

其中A,B和C是可能的子元素。 #PCDATA 必须被所述第一选择和组必须被允许重复0-无穷大时间时,需要即星号。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top