3

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

我已经尝试过了,但是它在 Visual Studio 中给出了一个编译错误,说该EMPTY元素没有被声明:

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

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

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

1 回答 1

1

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

<!ELEMENT File (Annotations?)>

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

此外,如果您使用*而不是?,您会说File可以包含零个或多个 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>

<!DOCTYPE File [
<!ELEMENT File (Annotations?)>
<!ELEMENT Annotations (State*)>
<!ELEMENT State EMPTY>
]>
<File>
  <Annotations/>
</File>
于 2011-08-17T17:15:05.213 回答