1 处理说明一些用户代理程序会显示处理说明。但是,注意当文档中没有XML声明时,文档只能用缺省的字符编码UTF-8 或 UTF-16。
2 空元素在空元素结束符 / 和 > 前加一个空格,如
,
和
. 还有,使用最小化的标签语法,如
,因为另一种XML允许的语法
在很多现有用户代理程序会导致不可靠的结果。
3 元素最小化和空元素内容内容模型不是空的元素,在为空的场合(如空title或空段落),不要用最小化形式(如 用
,不用
).
4 嵌入的样式表和Script如果你的样式表使用 或 --,用外部样式表。如果你的script用 或 --,用外部script。 注意XML分析程序会在不告知的情况下除去注释的内容。因此,以前用注释的方法”隐藏”script和样式表的习惯使文档可以向后兼容,但是可能在基于XML的执行时不能按预期工作。
5 在属性值内部分行在属性值中避免使用分行和多个空格符。用户代理程序处理这些情况时不一致。
6 Isindex在文档的head部分不要使用超过一个 isindex 元素. isindex 元素不被赞成使用,赞成使用input元素。
7 lang 和 xml:lang 属性在指定元素的语言时同时使用 lang 和 xml:lang 属性。xml:lang 属性在前。
8 片段标识符在 XML中,以"#foo"形式结束片段标识符URI [RFC2396] 不是指元素有一个属性name="foo",而是指元素有一个被定义为ID类型的属性,如,HTML 4中的id属性。很多HTML客户程序不以这种方式支持ID类型属性,所以,可以将相同的值同时附给这两个属性,以保证最大程度的向后和向前兼容。(如
...).
此外,因为ID类型属性的合法值集比CDATA类型属性的值集小得多,name属性被改为NMTOKEN。这个属性被限制为只有和ID类型或XML1.0 2.5节中的Name产品同样的值。不幸的是,XHTML的DTD不能表示出这个限制。因为这个改变,在转换现有的HTML文档时要加以注意。 如果在转换时值可能会改变,这些属性的值在文档中必须是唯一的,有效的,任何对这些片段标识符的引用(不管是内部还是外部)必须更新。
最后,注意不赞成在 a,applet,form,frame,iframe,img,和 map 元素中使用name属性,在以后的XHTML版本中,它将被去除。
9 字符编码要指定文档中的字符编码,同时在xml声明中使用编码属性指定 (如. ) 和在meta中用 http-equiv 语句 (如
).xml紊