XML中将元素节点作为文本节点的兄弟节点是错误的吗?

时间:2016-03-20 16:51:41

标签: xml nodes markup

以下是“允许”还是仅仅使用XML?我找不到对此的限制,但感觉有点奇怪。

<example>
    You can choose from
    <option>this</option>
    <option>that</option>
    <option>something else</option>
    Choose wisely.
</example>

如果错了,什么是好的选择?

3 个答案:

答案 0 :(得分:3)

不,混合元素和文本在XML中是完全正常的。

您可能更熟悉XML的数据导向使用,但XML实际上是从表示文档的基础演变而来的,其中在其他文本中标记文本是常态。它的前身SGML就像这样,今天HTML仍然像这样。

在XML Schema(XSD)中,mixed="true"指定内容模型中的混合文本。

答案 1 :(得分:1)

我认为最好只为一个目的保留混合内容:注释(或#34;标记&#34;)自然语言文本部分。因此,一个很好的测试是,如果标记被删除,文本是否仍然有意义?

在你的例子中,我唯一的批评是,如果你删除了标记,那么剩下的不是语法:它在第一句话之后错过了一个句号。

答案 2 :(得分:0)

除了上面的答案(我同意),我还要补充一点,这取决于XML文档的用途。如果目的是在应用程序之间传递业务数据,则可能需要验证整个文档。混合内容不能使用XML Schema严格验证,并且通常在企业对企业通信中被避免,除非它仅用于文档目的。