如何声明空的或非空的dtd元素

时间:2011-08-17 11:39:53

标签: xml dtd

如何在DTD中声明一个自动关闭或包含元素的元素?我找到了* - 运算符,但我无法验证这是否也可以验证空元素。

我试过这个,但它在Visual Studio中给出了一个编译错误,说明EMPTY元素未声明:

<!ELEMENT File (Annotations|EMPTY)>
<!ELEMENT Annotations (State*)>
<!ELEMENT State EMPTY>

或者我可以尝试以下方法,但我无法验证它是否正常:

<!ELEMENT File (Annotations?)>
...

1 个答案:

答案 0 :(得分:1)

是的,File的元素声明是正确的:

<!ELEMENT File (Annotations?)>

您所说的是File可以包含零个或一个Annotations元素。

此外,如果您使用*代替?,您可能会说File可以包含零或更多 {{1元素。

有效示例:

Annotations

<!DOCTYPE File [
<!ELEMENT File (Annotations?)>
<!ELEMENT Annotations (State*)>
<!ELEMENT State EMPTY>
]>
<File/>

<!DOCTYPE File [
<!ELEMENT File (Annotations?)>
<!ELEMENT Annotations (State*)>
<!ELEMENT State EMPTY>
]>
<File></File>