我需要针对DTD验证xml文件。
有时儿童元素会更多,我不知道下次会出现什么子元素,我尝试了以下内容:
<!ELEMENT Story (StoryPara+ , ANY+)+>
但这不起作用,如何使用DTD验证任何子元素?
答案 0 :(得分:1)
您不能将“ANY”与内容模型中的任何内容混合使用。 (你会像使用“EMPTY”一样使用它。)
您当前的元素声明所说的是:至少出现一次:一个或多个“StoryPara”元素后跟一个或多个“ANY”元素
将元素声明更改为:
<!ELEMENT Story ANY>
请注意,还必须定义任何“故事”的孩子。
例如,这是有效的:
<?xml version="1.0"?>
<!DOCTYPE test [
<!ELEMENT test ANY>
<!ELEMENT foo (#PCDATA)>
]>
<test>
<foo>This element is defined.</foo>
</test>
但这不是因为“bar”没有定义:
<?xml version="1.0"?>
<!DOCTYPE test [
<!ELEMENT test ANY>
<!ELEMENT foo (#PCDATA)>
]>
<test>
<foo>This element is defined.</foo>
<bar>This element is not defined.</bar>
</test>