XML 的使用越來越廣泛,但是很多 XML 的結構并不好。即便結構良好,也常常設計得很糟,使得處理和維護非常困難。而大部分用于 XML 的基礎結構使問題更加惡化。于是出現了關于 XML 最佳實踐的公開討論,比如 Henri Sivonen 的文章“HOWTO Avoid Being Called a Bozo When Producing XML”。Uche Ogbuji 經常在 IBM developerWorks 上討論 XML 最佳實踐,這里他提出了在這些文章中討論的要點。
幾年來我一直在本專欄和其他系列文章中討論 XML 最佳實踐。其他人,比如和我同行的專欄作家 Elliotte Rusty Harold 也談到這個問題。參加 XML 設計原則討論的 XML 專家越好越好,這樣社區就會對在不同層次上采用 XML 的開發人員提供一致的建議。本文將結合最新和過去的文章,更詳細地介紹了 XML 最佳實踐。
不再有笨蛋
Henri Sivonen 撰寫了一篇有用的文章“HOWTO Avoid Being Called a Bozo When Producing XML”(請參閱參考資料)。他采用了基于 XML 的 Web 提要格式(如 RSS 和 Atom)的觀點,提出了用名稱空間生成結構良好的 XML 應該做和不應該做哪些事情的指南。正如他在簡介中所說的:
有些開發人員似乎認為以編程方式生成 XML 而保持結構良好非常困難(如果不是不可能的話),另一些開發人員卻能夠做到這一點,并奇怪其他人為什么如此無能。我假設沒有人愿意顯得無能或者被點名。因此,我希望下列建議能夠幫助開發人員從第一類人轉變成第二類人。
Henri 給出的第一條建議是“不要將 XML 看作是文本格式”,我認為這是一條危險的建議。當然其基本觀點是正確的 —— 不能像簡單的文本文檔那樣隨心所欲的生成和編輯 XML,但是這種要求適用于所有有結構的文本格式。但是,說 XML 不是文本就背棄了 XML 一個最重要的特點,而這點在規范的 XML 定義中被奉為圭臬。(“文本對象是結構良好的 XML 文檔[如果符合本規范]”。) Henri 的提法也讓人糊涂,因為有關于 XML 文本的技術定義,大致上是將它解釋為 XML 的字符序列。文本不僅僅是葉子元素或者屬性中的主要成分 —— 技術上稱這類文本為字符數據。文本還是所有 XML 實體的主要成分,因此說 XML 不是文本是自相矛盾的。我認為強調 XML 和開發人員已經熟悉的文本格式的區別會更有意義。
新聞熱點
疑難解答