“格式不正确”XML和“无效”XML之间有什么区别?
参见英文答案 >
Is there any difference between ‘valid xml’ and ‘well formed xml’?????????????????????????????????????14个
I made a claim that an unescaped ampersand in some XML source was “invalid XML”. LarsH然后提到:
我试图找到“无效”XML和“格式不正确”XML的官方定义来确认LarsH的声明,但我无法在官方规范中找到任何定义来进行比较. “无效”XML与“格式不正确”的XML有何不同? 解决方法
我认为一般差异很明显,而Nathan和Shawn的答案是准确的.提出问题的不明确的案例是:
>如果文档格式不正确,它是否有效?可以无效吗? 对于一个非格式良好的XML片段,我从长时间使用XML中得到的印象是,有效性的问题是未定义的.但我无法从XML规范中证明这一点. 理论上 XML规范中的official definition of “valid”是:
请注意,此定义以“XML文档”开头.一个XML document is defined as:
这意味着上述“有效”定义仅适用于XML文档,即适用于格式良好的数据对象.关于不是(格式良好的)XML文档的数据对象,“有效”的定义没有说什么. 各种诠释学问题仍然存在…… >我们是否将上述有效定义视为详尽无遗……也就是说,我们是否认为没有其他关于有效性的定义是明确的? (如果是这样,我们忽略基于XML Schema或RelaxNG等的/ validity) 在规范之外看看受尊敬的XML专家…… 我们还需要记住SGML下降语言的更广泛背景,包括HTML. This web page给出了根据W3C验证器服务说明有效的XHTML页面示例,但格式不正确.但是当我run them by the validator service时,它并没有说它们是有效的. 在实践中 实际上,任何验证引擎都难以处理任何格式不正确的XML.它必须首先“纠正”输入数据,猜测预期的,正确的XML结构应该是什么,并且没有该过程的官方规范.因此,实施结果可能会有很大差异.验证将依赖于实现. 结论 出于这个原因,我会说,出于所有实际目的,如果数据对象不是一个(格式良好的)XML文档,那么声称数据对象是无效的XML会产生误导.如果你的意思是(如the case of the unescaped ampersand所示)数据不是格式良好的XML,那么术语“无效”就是传达了错误的东西,即使可以说是可以认为是真的.这有点像说蜘蛛不是果蝇,因为它有超过六条腿,当你的意思是蜘蛛不是昆虫,因为它有超过六条腿.确实,蜘蛛不是果蝇,但没有传达预期的意义. 尽管如此,我没有从XML规范中看到一个铁定的论据,该论证说明格式不正确的XML数据对象是否(或必须)无效.如果我们遵循Bob DuCharme,我们可能应该这样做,我们可以安全地得出结论,一个格式不正确的XML的数据对象无法生效. 当然,如果我们说,指的是一个数据对象,它不是格式良好的XML,它是无效的,我们会引起混淆,我们可能很容易理解为声称除了它没有格式良好之外的东西. 我希望进一步阅读XML专家可以让我们更好地了解这个问题的共识,即使答案不像XML规范那样正式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |