关闭标记中的XML/HTML标记名真的有必要吗?
这本身并不是一个编程问题,但我想知道为什么XML中的结束标记中需要标记的名称。比如说,我不能关闭标记中的XML/HTML标记名真的有必要吗?,xml,tags,language-design,Xml,Tags,Language Design,这本身并不是一个编程问题,但我想知道为什么XML中的结束标记中需要标记的名称。比如说,我不能 <a> <b>stuff</b> </a> 东西 写 <a> <b>stuff</> </> 东西 所以每个结束标记仅仅终止了最后一个打开的标记 所以我的问题是 这是否有效(即,是否存在我没有想到的任何角落案例,在这些案例中,这将是含糊不清的/失败的) 如果它能工作,为什么“他们”
<a>
<b>stuff</b>
</a>
东西
写
<a>
<b>stuff</>
</>
东西
所以每个结束标记
仅仅终止了最后一个打开的标记
所以我的问题是
/a/b
示例是可读的,但要解释一个复杂得多的结构将是一场噩梦
对于混合内容(PCDATA和元素结构混合)尤其如此。这可以工作,但调试嵌套问题会很糟糕。例如:
<one><two><nine></><ten></><eight><three></><four>
<five></><six></></>
<seven></>To what element does this text belong?</></></>
这个文本属于什么元素?
如果您确保XML具有适当的缩进,那么嵌套问题就不是问题(以下是正确缩进的相同代码。但是,由于缩进无关紧要,我们需要另一种机制来保持XML的可读性。在本例中,可读性意味着人们可以很容易地看到哪些内容属于哪个元素。解决方案是命名每个结束标记引用的元素
<one>
<two>
<nine>
</nine>
<ten>
</ten>
<eight>
<three>
</>
<four>
<five>
</>
<six>
</>
</>
<seven>
</>
To what element does this text belong?
</>
</>
</>
这个文本属于什么元素?
当我们给结束标记命名时,即使在缩进不正确的XML中也可以清楚地看到文本属于元素
这个文本属于什么元素?
闻起来像SGML。SGML还允许类似于的东西,我同意“mu太短了”。要补充,它需要遵循XML 1.0建议第2.1节中“格式良好”的XML概念()除了我的最后一条评论,SGML本来是手工编写的,所以有很多快捷方式,XML是通过软件支持(XML编辑器或完全由软件生成)构建的因此,更简单/更快的解析器比快捷方式更重要。使用
而不是实际的结束标记有什么好处?我不同意投票结束。这既是一个建设性的问题,也是一个真正的问题,也是一个很好的问题。
<one><two><nine></nine><ten></ten><eight><three></three><four>
<five></five><six></six></four><seven>
</seven>To what element does this text belong?</eight></two></one>