为什么XML声明以“<! - ?xml”而不是“<!xml”开头? - >

时间:2011-07-18 13:54:08

标签: xml declaration

我认为XML是SGML的一个应用程序,并且SGML声明的默认语法以"<!"分隔符开头。

基于这种理解,我不清楚"<?"是如何产生的。

有人请cxplain吗?谢谢。

1 个答案:

答案 0 :(得分:4)

<!开始DOCTYPE声明,<?开始处理指令。标准指定<?xml处理指令以指示接下来是XML,指示XML的版本和文本编码。它与文档的实际结构没有关系,这是DOCTYPE声明的内容。我不确定为什么DOCTYPE声明的指定与处理指令不同,但是现在很多(可能是大多数)XML文档的结构由XML模式或RelaxNG定义,并且只能从DOCTYPE引用DTD。还有其他方法可以使用处理指令;他们主要是为了给供应商提供自己功能的侧门。可能第二种最常见的用途是链接到XSLT或CSS样式表。

XML最初被认为是SGML的简化子集,但从那以后它变得更加不同。从某种意义上说,XML“依旧”SGML是不公平的,只是它们与历史和家谱有关。