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