XML及其技術指南

來源:互聯網
上載者:User
xml     概要:本文介紹了XML以及XML家族中的各項技術。我們將討論這其中的各項核心技術是如何組合成一個完整的整體以及一些支援XML技術的東西究竟是什麼。

 
  似乎這樣的事情每天都在發生:越來越多的開發人員都相信XML(Extensible Markup Language)將從根本上改變我們的軟體業。但如果你想從他們那裡弄清楚這一切為什麼或是何時將會發生時,你會發現他們給的解釋中充斥著大堆有關XML的專有名詞的縮寫。這些東西實際上並不能讓你明白些什麼,我相信你一定不會滿意像他們這樣的解釋。

  通常,人們在學習掌握XML時所遇到的主要障礙來自於XML驚人的發展速度。如果你瀏覽一下W3C關於XML的網站(http://www.w4.org/xml/),你會發現有關XML的大量技術以及相關的出版物。W3C將如此大量的資訊聚集在一起,給開發人員造成了不小的麻煩。在對"XML所含蓋的所用技術是如何整合在一起"這樣關鍵性的問題還沒用明確概念的情況下,想要學習XML是比較困難的。

  本文向你介紹了XML和XML家族中的各項技術,使你不僅在更高層次上對XML的重要性有所瞭解,而且知道XML中的各項技術是如何組合在一起成為一項完整的技術。讀完本文,你會將會對困擾你的那些XML專用名詞及其縮寫用一個大致的瞭解,為你今後從更深層次學習XML打下基礎。

   那麼,究竟什麼是XML呢?

  在很多介紹以前的XML的作者中,回答這個問題已經成為了一種風潮。就像你已經熟知的一樣,XML是Extensible Markup Language的正式縮寫。他們可能認為XML的發音比EML讀起來更性感,於是就將原先的字母E換成了字母X。然而,當你跨過縮寫從更深層次上來理解XML時,你會發現它不僅僅是一種標記語言,而是一系列的技術。這一技術家族為我們開發具用更好的可擴充性和互通性的軟體提供了一種解決方案。

  XML來自何處?

  XML起源於SGML(Standard Generalized Markup Language。換句話說,你可以既使用XML也可以使用SGML來建立自己的描述性文檔。這兩種語言都使用文本標識(Tags)來描述資料以供其他應用或是工具(例如一個SGML或是XML剖析器)使用。有了XML,它們可以正確的讀取資訊並對資料進行一些有趣的操作。XML是SGML的一個簡化版本,它更適合於在Web上使用。

  XML的文法

  XML定義了用來描述你的資料的文法。一下就是一句正確的XML語句:

  <hamburger name="CowBurger" lowfat="dream on"/>

  和其他的標識語言有所不同,XML對大小寫是敏感的。所以,<hamburger>元素和<Hamburger>元素在XML中是不同的。同時,XML不會忽略空格(其他的語言常常忽略空格)。對每一個可能對文檔結構造成混淆的字元,XML都會仔細的處理(就像< and >)。

  如果一個XML文檔只含有一個根項目,並且所有的子項目都被正確地放在父元素中,這樣的XML具有良好的風格。更具體地說,就是對每一個給定的子項目,它的begin和end tag都只存在於相同的父元素中。下面就是一段風格良好的XML文檔樣本(hamburger.xml)。

<?xml version="1.0"?>
<hamburgers>
 <hamburger lowfat="dream on">
  <name>CowBurger</name>
  <description>Greasy and good.</description>
  <price>2.99</price>
 </hamburger>
</hamburgers>


   誰來定義Tags?

  讀了前面的部分後,你會發現你已基本上瞭解了XML的文法。其實這裡的內容並不是很多,XML確實是非常簡單。

  可能你已經注意到了,XML看起來很像HTML(Hypertext Markup Language)。他們都用相同的文法來定義begin和end tag以及一些屬性。從本質上說,HTML使用的是一些預先設定好的元素和方法,只是XML的一個特例。這些元素及其相關的方法決定了瀏覽器如何解釋一個XML文檔,進而提供給終端使用者。

  和HTML為建立使用者介面提供了一種通用的方法一樣,XML提供了一種描述並協同資料工作的通用方法。XML允許開發人員建立自己的XML詞彙,用自訂的方式描述他們自己的資料結構。假如一個開發人員正在為一個快餐連鎖店開發軟體,那麼,為了描述一些食品,一個"漢堡包"元素可能會十分的方便。

  一旦開發人員使用了XML來描述他們的資料,他們就可以很方便的在相同的或是不同的系統中對這些資料進行互操作。當然,前提是那些系統都能理解XML。譬如說,一位開發人員可以使用來自另一個系統的資料,只要那些資料是用XML描述的。如此一來,開發人員在考慮軟體的互通性時就再也不必擔心諸如平台、作業系統、語言、或是資料存放區等各方面的不同了。XML是實現系統之間互通性的最簡單工具。

   XML的名字空間

  由於XML對互通性的支援,每個人都可以建立屬於自己的XML詞彙。這樣一來,如果不同的開發人員用相同的元素來代表不同的實體的話,後果是不可想象的。為了防止這種潛在的衝突,W3C在XML中引入了名字空間。

  XML名字空間為你的XML文件項目提供了一個上下文。它允許開發人員按一定的語義來處理元素。還以漢堡包舉例說明,在某個系統中price元素可能代表的是消費者的購買價,而在另一個系統中,它可能代表了商店的進貨價。下面的例子示範了名字空間是怎樣幫我們解決這樣的問題的。

<?xml version="1.0"?>
<hamburgers
  xmlns:purchase="http://fastfood.org/franchise/prices"
  xmlns:sales="http://fastfood.org/customer/prices"

 <hamburger lowfat="dream on">
  <name>CowBurger</name>
  <description>Greasy and good.</description>
  <purchase:price>0.99</price>
  <sales:price>2.99</price>
 </hamburger>
</hamburgers>

[1] [2] [3] [4] 下一頁  



相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。