如何使用其他不受限制的元素将元素限制为零或一个元素

时间:2015-06-05 02:15:18

标签: xml dtd

在DTD中,我可以看到元素如何通过使用“?”来限制为零或一个元素。符号:

<!ELEMENT basket apple?>

但我也希望对同一序列中的其他两种元素没有限制,以下似乎不起作用?

更新:

<!ELEMENT basket ((banana | coconut)+,(apple?),(banana | coconut)*>

所以序列中只有一个苹果,但香蕉和椰子的组合无限。对DTD新手有什么建议吗?我知道架构但我们的遗留应用程序使用DTD。是否可以通过DTD强制执行此操作?

1 个答案:

答案 0 :(得分:1)

如果您只想要零{或1 {} apple而不会出现bananacoconut,请尝试以下操作:

  <!ELEMENT basket (apple?|(banana|coconut)*)>

如果您想要零个或一个apple 出现banana和/或coconut零次或多次,请尝试以下操作:

  <!ELEMENT basket (apple?,(banana|coconut)*)>

请注意,最后一个示例意味着零或一个apple ,然后零或更多banana和/或coconut