XML介紹

發表于:2012-08-14來源:博客園作者:Jack_wangds點擊數: 標簽:xml
1.1 簡介XML的一個強大之處在于它的強大可擴展性。XML沒有定義自己的標簽,你可以創建你自己的標簽,形成你自己的詞匯表。XML關注的是內容,而不是表現,你創建的標簽主要用來阻止數據而不是表現數據。

1.1 簡介

XML的一個強大之處在于它的強大可擴展性。XML沒有定義自己的標簽,你可以創建你自己的標簽,形成你自己的詞匯表。XML關注的是內容,而不是表現,你創建的標簽主要用來阻止數據而不是表現數據。
(a).
<H1>ASP.NET XML 系列</H1>
<p>Author: Jack Wang</p>
(b).
<articles>
<title>Asp.net xml系列</title>
<author>Jack Wang</author>
</articles>
很明顯第二種更容易為人類理解

1.2 基本術語:

格式良好
如果文檔符合由XML規范定義的格式良好的規定,那么該文檔就被認為是格式良好的,規定如下:
文檔包含一個或多個元素
文檔只有一個根元素(也就是文檔元素)
元素的結束標簽名稱與開始標簽的名稱一致
在一個元素中屬性只能出現一次
屬性值不能包含左尖括號(<)
由開始和結束標簽界定的元素必須互相正確地嵌套

有效性

有效之前,必須是格式良好的,為了達到有效,XML文檔必須經過驗證??梢酝ㄟ^DTD(Document Type Definition)或者XML模式(XML Schema Definition)來對文檔進行驗證。
1.3 XML文檔的組成部分

XML是一種用來描述數據并構建數據的語言,XML數據包含在文檔中,這個文檔可以是一個文本、一個數據流或者任何其他能夠保存文本的存儲介質,現實的或者虛擬的。一個正確的XML文檔以如下XML申明開始,制定文檔內容將要符合的XML版本
<?xml version="1.0" >
 XML還可以包含編碼屬性,用來定義文檔的字符類型。
<?xml version="1.0" encoding="utf-8"?>
如果文檔由UTF-8或者UTF-16字符組成,那么編碼屬性是可選的,因為XML解析器可以解析文檔的前5個字符'<?xml'. XML聲明其實是XML處理指令的特殊格式,其中包含了XML處理器的指令。處理指令一般在<?和?>之間。

元素
元素名稱必須符合XML規范中預先描述的一套規則,你可以在http://www.w3c.org/TR/REC-xml上閱讀。規范著重強調元素名稱可以由字母或者下劃線開頭,后跟字母、數字、句點、連字符和下劃線。元素名稱中不允許空格。元素是XML文檔的構件,可以包含數據、其它元素或者同時包含,并且總是以開始和結束標簽分界。XML沒有預定義元素。 <?xml version="1.0" encoding="utf-8"?>


<articles>
<article>
<title>Asp.net xml系列</title>
<author>Jack Wang</author>
<publishdate>2008-03-15</publishdate>
</article>
<article>
<title>C# xml系列</title>
<author>Jack Wang</author>
<publishdate>2009-03-15</publishdate>
</article>
<article>
<title>xml系列</title>
<author>Jack Wang</author>
<publishdate/>
</article>
</articles>

<articles>是文檔的元素,<article>是<articles>的子元素<title>,<author>,<publishdate>是<article>的子元素,<publishdate/>空元素可以這樣寫(既沒有數據的元素)。

屬性
<title maintitle="ASP.NET">Asp.net xml系列</title> maintitle就是屬性。

CDATA、PCDATA和實體引用
出現在<![CDATA[和 ]]>標簽之間的數據就是CDATA,而其他的數據就是PCDATA(Parsed character Data). XML解析器會忽略CDATA標簽中的內容。
<price><![CDATA[0<bookprice<1000]]></price>
另一種表達方法是把它們替換成實體引用

命名空間
<article>
<title>xml系列</title>
<author>
<title>Mr</title>
<nickName>Jack</nickName></author>
<publishdate/>
<price><![CDATA[0<bookprice<1000]]></price>
</article>

我們可以看到上面兩個title表示不同的語義,但是無法區分,同樣這種問題也會出現在多個文檔組織在一起時。所以我們需要加上命名空間,作用就是和C#里的一樣。
聲明命名空間
Xmlns—指定值作為xml的命名空間,他是申明命名空間所必需的,并且可以附加在任何 XML元素上。
Prefix---指定一個命名空間的前綴,如果使用了該前綴,那么文檔中任何使用該前綴(prefix:element)的任何元素被認為是位于申明的命名空間范圍之內.
namespaceURI—指定命名空間唯一標識符。不必指向一個實際的WEB資源。


<?xml version="1.0" encoding="utf-8"?>
<articles xmlns="http://cnblogsfans.cnblogs.com/Asp.net_xml/article">
<article>
<title maintitle="ASP.NET" >Asp.net xml系列</title>
<author>Jack Wang</author>
<publishdate>2008-03-15</publishdate>
</article>
<article>
<title>C# xml系列</title>
<author>Jack Wang</author>
<publishdate>2009-03-15</publishdate>
</article>
<article>
<title>xml系列</title>
<author xmlns:mytitle="http://cnblogsfans.cnblogs.com/Asp.net_xml/article/author">
<mytitle:title>Mr</mytitle:title>
<nickName>Jack</nickName>

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97