仔细考虑了XML W3C Recommendation 1.0,我仍然对
的一般性质感到困惑 <!FOO ...>
类型标签。这些标签背后的基本原理是什么,它们是如何解析的,并且对这种语法有任何概括。对我来说,他们似乎是一个几乎临时的黑客添加到XML中,以便于在XML首次设计时没有考虑到的东西...是否有效
<! > and <![ ]> (like <!DOCTYPE ...> and <![CDATA []]>)
标签硬连线到XML标准,还是我可以自己定义?如果是这样,他们如何解析?我只想问,因为我想要全面了解XML,而不是因为它会有用;)
此致
纳斯
答案 0 :(得分:3)
这些标签[脚注]是硬连线的;并且几乎只包含评论,CDATA
和DOCTYPE
;两者都是SGML的遗留物。
<?name ?>
样式标记中存在类似的内容,可以是用户定义的(<?xml* ?>
除外),称为处理指令。
应该限制使用这些标签(如同使用<!
标签一样;包括DOCTYPE和CDATA),如果不存在的话(明显的例外情况除外(<!--
)和XML声明(<?xml
))。
在某些高度特定的应用程序中,当然,Processing Instructions是完全合法的(PHP入口/出口标签(<?php ?>
)可以被视为处理指令,但PHP不是PXP,并且不遵守规则PI可以合法使用的地方(提示:您不能在属性和标签内部使用PI)。
一般来说:除非您计划预处理XML,否则不要使用处理指令。与CDATA
和DOCTYPE
类似,它们并不是为了传达信息,而是告诉(预)处理器在解析之前/之前如何(预先)处理XML。
脚注: <! >
样式说明实际上不是标签;它们是评论,doctypes和CDATA部分。如果这三个结构的名称在一起,那么它目前就逃脱了。
答案 1 :(得分:1)
<!…>
部分包含特定于XML的处理指令,与通用处理指令<?…?>
形成对比 - 硬连线到标准中。
如果您对语法的来源感兴趣,那么您应该研究一下SGML,它是XML的超集,它早于十年。