如何在DTD中声明一个自动关闭或包含元素的元素?我找到了*
- 运算符,但我无法验证这是否也可以验证空元素。
我试过这个,但它在Visual Studio中给出了一个编译错误,说明EMPTY
元素未声明:
<!ELEMENT File (Annotations|EMPTY)>
<!ELEMENT Annotations (State*)>
<!ELEMENT State EMPTY>
或者我可以尝试以下方法,但我无法验证它是否正常:
<!ELEMENT File (Annotations?)>
...
答案 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>