繁体   English   中英

为什么XML格式正确?

[英]Why is this XML well formed?

我第一次看到这样的XML:

<?xml version="1.0" encoding="UTF-8"?>
<test>
     <enclosingTag>Floating_Strange_Text <!--It's new to me-->
         <tag>data</tag>
         <tag>data</tag>
     </enclosingTag>
</test>

但是,在对格式良好的XML验证器(如标记验证服务)进行测试之后,我怀疑确实允许这样做。

这个XML片段真的有效吗?

如果某些内部内容未包装在<> ,则表示为“文本节点”。 此外,您可以有多个同级文本节点,这些节点可以使您的XML看起来与HTML十分相似,并且所有粗体/斜体/下划线标签都与主要文本内容混合在一起。 唯一的是,与HTML不同,标记不能随意地相互重叠,因为XML要求完全按照打开标记的相反顺序关闭标记。

例如,这是非常合法的XML:

<root>The <truth /> is that there <is> no </is> spoon</root>

如果我们将其“分解”为节点,则漂亮的打印结构可能像这样:

<root>
    The 
    <truth />
    is that there 
    <is>
         no 
    </is>
    spoon
</root>

如您所见, <root>标记中包含3个文本节点,而<is>标记中又包含一个文本节点。

确实,与基于标签的方法不同,由于复杂的验证架构等,这种XML变体没有得到广泛使用。同时,您应考虑这种情况并纠正XML流。

是。 验证者是正确的。 XML支持文本节点。

从未这样的规则:“ 如果元素具有文本节点作为子节点,则不允许其他子节点 。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM