2013-01-21 48 views
0

我试图完成以下元素声明: XML元素可能由文本或/和元素组成,但它必须至少包含其中之一。具有至少一个元素/类型的XML混合内容模型

如果我做的:

<!ELEMENT myelem (#PCDATA|myanotherelem)*> 

这意味着myelem可能仍然是空的。我想用

(#PCDATA|myanotherelem)+ 

的,但混合内容模式应该是从零开始的。我如何处理它?

回答

2

对于某些数字元素(零个或多个)a,b,... z,XML DTD中内容模型的唯一合法形式是(#PCDATA)(#PCDATA | a | b | ... | z)*

请注意,<myelem></myelem>形式的元素事实上被XML规范视为具有#PCDATA内容 - 您想要指定非零长度的#PCDATA内容并非完全不合理,但这不是实际上关键字#PCDATA的含义是什么。您希望施加的约束(对于#PCDATA内容的最小长度 - 也许您还希望要求它不仅仅由空白字符组成)也不能用DTD表示法表示。这是其他模式语言(例如,XSD和Relax NG)通过数据类型添加的内容之一。

+0

谢谢,你已经明确告诉我了。 – NullPointerException

相关问题