如果我不知道子元素,如何添加DTD元素 [英] how to add DTD element if I dont know the child elements

查看:95
本文介绍了如果我不知道子元素,如何添加DTD元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要针对DTD验证xml文件。

I need to validate xml files against a DTD.

有时候,子元素可能更多,我不知道下一次会出现什么子元素,我尝试过

Sometimes the child elements can be more and I dont know what child elements will come up next time, I tried the following:

<!ELEMENT Story (StoryPara+ , ANY+)+>

但这不起作用,如何使用DTD验证任何子元素?

but this didn't work, how to validate for any child elements using DTD?

推荐答案

您不能将 ANY与内容模型中的其他任何内容混合使用。 (您可以像使用 EMPTY一样使用它。)

You can't mix "ANY" with anything else in your content model. (You would use it just like you would use "EMPTY".)

您当前的元素声明是:至少出现以下情况:一个或多个 StoryPara 元素,然后是一个或多个 ANY元素

What your current element declaration is saying is: at least one occurrence of: one or more "StoryPara" element(s) followed by one or more "ANY" element(s)

将元素声明更改为:

<!ELEMENT Story ANY>

请注意,也必须定义故事的任何子元素。 / em>

例如,这是有效的:

<?xml version="1.0"?>
<!DOCTYPE test [
<!ELEMENT test ANY>
<!ELEMENT foo (#PCDATA)>
]>
<test>
  <foo>This element is defined.</foo>
</test>

但这不是因为未定义 bar:

but this is not because "bar" is not defined:

<?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>

这篇关于如果我不知道子元素,如何添加DTD元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆