【问题标题】:basic question with a dtddtd的基本问题
【发布时间】:2011-01-03 22:10:10
【问题描述】:

我需要一个具有特征的元素

<!ELEMENT section ((comment*)|definition|(comment*))>

但这是模棱两可的,我在 Visual Studio 中收到下一条消息

元素'comment'的多重定义导致内容模型变得模棱两可。必须形成一个内容模型,使得在元素信息项序列的验证过程中,直接、间接或隐含包含在其中的粒子可以唯一地确定,用它来尝试依次验证序列中的每个项目,而无需检查其内容或属性。该项目,并且没有关于序列其余部分中的项目的任何信息。

那么我怎样才能正确地写出来呢?正确的结构是由可能的 cmets 元素包围的一个定义。

【问题讨论】:

  • 使用 XML 模式,而不是 DTD。

标签: xml validation dtd


【解决方案1】:

如果我理解正确,您尝试使用零个或多个注释元素,后跟一个定义元素,后跟零个或多个 cmets。

您现在拥有的模型不明确,因为它指定了零个或多个 cmets 或一个定义或零个或多个 cmets。您需要的更改非常简单(假设我理解):

<!ELEMENT section (comment*, definition, comment*) >

基本上,| 字符表示交替,, 表示序列。

【讨论】:

  • 谢谢,这正是我所需要的。我认为该序列或替代与最终结果无关,但该序列是公认的并且没有歧义。有时一个人有前面的解决方案,却看不到它....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 2011-07-13
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多