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

Is it wrong in XML to have element nodes as siblings of text nodes?

是下面的"allowed"还是单纯的XML使用不当?我找不到这方面的限制,但感觉有点奇怪。

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

如果错了,什么是好的替代方案?

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

您可能更熟悉 XML 的面向数据的用途,但 XML 实际上是从表示文档的基础发展而来的,在其他文本中标记文本是一种常态。它的前身SGML就是这样,HTML今天还是这样

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

我认为最好只为一个目的保留混合内容:注释(或 "mark-up")自然语言文本的部分。所以一个很好的应用测试是,如果删除标记,文本是否仍然有意义?

在你的例子中,我唯一的批评是,如果你删除标记,剩下的就是不符合语法的:它在第一句话后缺少一个句号。

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