如果我不知道子元素,如何添加 DTD 元素

发布于 2024-11-17 13:13:57 字数 174 浏览 2 评论 0原文

我需要根据 DTD 验证 xml 文件。

有时子元素可能会更多,我不知道下次会出现什么子元素,我尝试了以下方法:

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

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

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+)+>

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事与诗 2024-11-24 13:13:57

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

您当前的元素声明所说的是:至少出现一次:一个或多个“StoryPara”元素,后跟一个或多个“ANY”元素( s)

将元素声明更改为:

<!ELEMENT Story ANY>

请注意,还必须定义“Story”的任何子元素。

例如,这是有效的:

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

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

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)

Change your element declaration to this:

<!ELEMENT Story ANY>

Do note that any child of "Story" must also be defined.

For example, this is valid:

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

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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文