如果說json是一種輕量級的資料交換格式,那麼xml就是重量級的。xml應用於web開發的許多方面,常用於簡化資料的儲存和共享。永遠要記住,xml跟json一樣是用來儲存和傳輸資料的,而非顯示資料,顯示資料是html幹的活。
xml是不作為的,xml不會做任何事情,它僅僅是純文字,是包裝在xml標籤中的純粹的資訊。我們需要編寫軟體或者程式,才能傳送、接收和顯示出這個文件。
舉個簡單的例子,的文章備份就是用xml儲存的(儲存的僅僅是純文字),一旦需要就把它上傳,伺服器應該會有個解析器解析該檔案(xml文件需要軟體解析)。
複製**我們看到以上的**,是john給george的乙個便簽,被儲存為.xml字尾的檔案。前面說過,xml用於資料的儲存和傳輸,所以當george收到檔案時,就會用特定的解析器去解析(可能生成html檔案),這樣就會直觀地顯示資料。
<?xml version="1.0" encoding="iso-8859-1"?>
georgeto>
johnfrom>
reminderheading>
don't forget the meeting!body>
note>
接著來分析下以上xml檔案的構成。
第一行是xml宣告。它定義xml的版本(1.0)和所使用的編碼 (iso-8859-1 = latin-1/西歐字符集)。
下一行描述文件的根元素(像在說:「本文件是乙個便簽」):
複製**接下來 4 行描述根的 4 個子元素(to, from, heading 以及 body):
複製**最後一行定義根元素的結尾:
georgeto>
johnfrom>
reminderheading>
don't forget the meeting!body>
複製**xml文件形成了乙個樹結構(和html的dom樹類似),xml文件必須包含根元素,該元素是其他所有元素的父元素。
note>
xml語法很簡單,特別是針對有強迫症的童鞋。
所有 xml 元素都須有關閉標籤
xml 標籤對大小寫敏感,必須使用相同的大小寫來編寫開啟標籤和關閉標籤
xml 必須正確地巢狀
xml 文件必須有根元素
xml 的屬性值須加引號
實體引用
xml 中的注釋
在 xml 中,空格會被保留
這裡解釋下6、7、8,5可以參考下一小節。
在xml中,一些字元擁有特殊的意義。如果你把字元<
放在xml元素中,會發生錯誤,這是因為解析器會把它當做新元素的開始。比如這樣:
複製**為避免這樣的錯誤,使用實體引用來代替
< george
to>
<
字元:
複製**在xml中,有5個預定義的實體引用。只有字元 "
在xml中編寫注釋的語法和html的語法類似:
複製**html會把多個連續的空格字元裁減(合併)為乙個,但是xml文件中的空格會被保留(儘管在瀏覽器中沒有顯示):
複製**xml元素指的是從(且包括)開始標籤直到(且包括)結束標籤的部分。元素可包含其他元素、文字或者兩者的混合物。元素也可以擁有屬性。
文件中: han zichi name>
實際顯示: han zichiname>
複製**在上例中,
category="children">
harry pottertitle>
j k. rowlingauthor>
2005year>
29.99price>
book>
category="web">
learning xmltitle>
erik t. rayauthor>
2003year>
39.95price>
book>
bookstore>
和
都擁有元素內容,因為它們包含了其他元素。
只有文字內容,因為它僅包含文字。在上例中,只有
元素擁有屬性(category="children")
。
xml 命名規則:
名稱可以含字母、數字以及其他的字元
名稱不能以數字或者標點符號開始
名稱不能以字元 「xml」(或者 xml、xml)開始
名稱不能包含空格
推薦用下劃線_
來命名,比如
可使用任何名稱,沒有保留的字詞。
xml元素可以在開始標籤中包含屬性,類似html,屬性值必須被引號包圍(單引雙引均可)。屬性(attribute)提供關於元素的額外(附加)資訊。
屬性通常提供不屬於資料組成部分的資訊。在下面的例子中,檔案型別與資料無關,但是對需要處理這個元素的軟體來說卻很重要:
複製**xml元素 vs 屬性:
type="gif">computer.giffile>
複製**在第乙個例子中,*** 是乙個屬性。在第二個例子中,*** 則是乙個子元素。兩個例子均可提供相同的資訊。沒有什麼規矩可以告訴我們什麼時候該使用屬性,而什麼時候該使用子元素。我的經驗是在 html 中,屬性用起來很便利,但是在 xml 中,您應該盡量避免使用屬性。如果資訊感覺起來很像資料,那麼請使用子元素吧
***="female">
annafirstname>
smithlastname>
person>
female***>
annafirstname>
smithlastname>
person>
XML基礎知識
好多書籍只介紹建立xml webservice,並沒有詳細介紹xml webservice的工作原理以及各部分 例如iis asp.net 在xml webservice中所起的作用.學習後整理了一下,希望對讀者有所幫助 一 xml webservice作用 xml webservice在應用程式中...
xml基礎知識
xml extensible markup language 即可擴充套件標記語言,它與html一樣,都是sgml standard generalized markup language,標準通用標記語言 xml是internet 環境中跨平台的,依賴於內容的技術,是當前處理結構化文件資訊的有力工...
xml基礎知識
xml extensible markup language 是html的擴充套件標籤語言,xml比html更加靈活,html的標籤是固有的 已經被定義 而xml標籤沒有固定的,所有標籤均可根據實際需要自行定義,但在語法要求上xml比html嚴格。在xml嚴格要求所有標籤必須有開始標籤和結束標籤。x...