XML 即可擴展標記語言(Extensible Markup language),你可以根據自己的需要擴展 XML。XML 中可以輕松定義<books>, <orders>等自定義標簽,而在 HTML 等其他標記語言中必須使用預定義的標簽,比如<p>,而不能使用用戶定義的標簽。使用 DTD 和 XML Schema 標準化XML 結構。XML 主要用于從一個系統到另一系統的數據傳輸,比如企級應用的客戶端與服務端。
XPath 是用于從 XML 文檔檢索元素的 XML 技術。XML 文檔是結構化的,因此 XPath 可以從 XML 文件定位和檢索元素、屬性或值。從數據檢索方面來說,XPath與 SQL 很相似,但是它有自己的語法和規則。了解更多查看怎樣使用 XPath 從XML文檔中檢索數據。
XML 命名空間與 Java 的 package 類似,用來避免不同來源名稱相同的標簽發生沖突。XML 命名空間在 XML 文檔頂部使用 xmlns 屬性定義,語法為 xmlns:prefix=’URI’。prefix 與XML 文檔中實際標簽一起使用。下面例子為 XML 命名空間的使用。
<root xmlns:inst="http://instruments.com/inst"
<inst:phone>
<inst:number>837363223</inst:number>
</inst:phone>
</root>
解析方式:有 DOM,SAX,STAX 等:
● DOM:處理大型文件時其性能下降的非常厲害。這個問題是由 DOM 的樹結構所造成的,這種結構占用的內存較多,而且 DOM 必須在解析文件之前把整個文檔裝入內存,適合對 XML 的隨機訪問;
● SAX:不同于 DOM,SAX 是事件驅動型的 XML 解析方式。它順序讀取 XML 文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼來處理 XML 文件,適合對 XML 的順序訪問;
● STAX:Streaming API for XML (StAX)。
1)在做數據交換平臺時,將不能數據源的數據組裝成 XML 文件,然后將 XML 文件壓縮打包加密后通過網絡傳送給接收者,接收解密與解壓縮后再同 XML 文件中還原相關信息進行處理。
2)在做軟件配置時,利用 XML 可以很方便的進行,軟件的各種配置參數都存貯在 XML 文件中。
JSON是一種取代XML的數據結構,和xml相比,它更小巧但描述能力不差,網絡傳輸數據將減少更多的流量從而加快速度,是一種輕量級的數據交換格式。
1.JSON是JavaScript Object Notation;XML是可擴展標記語言。
2.JSON是基于JavaScript語言;XML源自SGML。
3.JSON是一種表示對象的方式;XML是一種標記語言,使用標記結構來表示數據項。
4.JSON不提供對命名空間的任何支持;XML支持名稱空間。
5.JSON支持數組;XML不支持數組。
6.XML的文件相對難以閱讀和解釋;與XML相比,JSON的文件非常易于閱讀。
7.JSON不使用結束標記;XML有開始和結束標簽。
8.JSON的安全性較低;XML比JSON更安全。
9.JSON不支持注釋;XML支持注釋。
10.JSON僅支持UTF-8編碼;XML支持各種編碼。