<! - - >类型标记的XML语法规范

时间:2010-09-24 10:16:29

标签: xml

仔细考虑了XML W3C Recommendation 1.0,我仍然对

的一般性质感到困惑
 <!FOO ...>

类型标签。这些标签背后的基本原理是什么,它们是如何解析的,并且对这种语法有任何概括。对我来说,他们似乎是一个几乎临时的黑客添加到XML中,以便于在XML首次设计时没有考虑到的东西...是否有效

<! > and <![ ]> (like <!DOCTYPE ...> and <![CDATA []]>)

标签硬连线到XML标准,还是我可以自己定义?如果是这样,他们如何解析?我只想问,因为我想要全面了解XML,而不是因为它会有用;)

此致

纳斯

2 个答案:

答案 0 :(得分:3)

这些标签[脚注]是硬连线的;并且几乎只包含评论,CDATADOCTYPE;两者都是SGML的遗留物。

<?name ?>样式标记中存在类似的内容,可以是用户定义的(<?xml* ?>除外),称为处理指令。

应该限制使用这些标签(如同使用<!标签一样;包括DOCTYPE和CDATA),如果不存在的话(明显的例外情况除外(<!--)和XML声明(<?xml))。

在某些高度特定的应用程序中,当然,Processing Instructions是完全合法的(PHP入口/出口标签(<?php ?>)可以被视为处理指令,但PHP不是PXP,并且不遵守规则PI可以合法使用的地方(提示:您不能在属性和标签内部使用PI)。

一般来说:除非您计划预处理XML,否则不要使用处理指令。与CDATADOCTYPE类似,它们并不是为了传达信息,而是告诉(预)处理器在解析之前/之前如何(预先)处理XML。

脚注: <! >样式说明实际上不是标签;它们是评论,doctypes和CDATA部分。如果这三个结构的名称在一起,那么它目前就逃脱了。

答案 1 :(得分:1)

<!…>部分包含特定于XML的处理指令,与通用处理指令<?…?>形成对比 - 硬连线到标准中。

如果您对语法的来源感兴趣,那么您应该研究一下SGML,它是XML的超集,它早于十年。