精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
IBM developerWorks 中國 : XML 新手入門
userphoto

2012.03.19

關注

需要 XML 入門幫助嗎?developerWorks 網站 XML 專區包含各種文章、教程和技巧,能幫助開發人員進行基于 XML 的開發。對于試圖在新領域找尋方向的用戶而言,所有這些信息都是極具價值和吸引力的。本文為有心學習 XML 卻不知從何處下手的用戶提供了一個大綱。不論您是想要理解 XML 的本質,探究 Ajax、Mashup 或 RSS,還是準備 XML 認證,本文都可以幫助您找到方向并開始征程。

什么是 XML?

XML 即可擴展標記語言(Extensible Markup Language),是一種平臺無關的表示數據的方法。簡單地說,使用 XML 創建的數據可以被任何應用程序在任何平臺上讀取。甚至可以通過手動編碼來編輯和創建 XML 文檔。其原因是,XML 與 HTML 一樣,都是建立在相同的基于標記技術基礎之上。

一個示例

比如說,假設我們想要使用 XML 存儲關于某個事務的信息。這個事務是由銷售人員的 iBook 發起的,因此您想把信息存儲在 iBook 中。但是,信息稍后會發送給 Windows 服務器上的數據應用程序,并且最終保存在您的主機中,因此這需要極佳的靈活性才能完成。使用 XML 創建的數據內容如清單 1 所示。

清單 1. XML 示例

                <?xml version="1.0"?><transaction ID="THX1138">   <salesperson>bluemax</salesperson>   <order>      <product productNumber="3263827">         <quantity>1</quantity>         <unitprice currency="standard">3000000</unitprice>         <description>Medium Trash Compactor</description>      </product>   </order>   <return></return></transaction>

XML 將信息串行化并作為文本存儲,這樣數據便可以在任何可能需要的環境中使用。甚至不需使用特殊的應用程序,我們便可以看到內容(粗體顯示)和標記(用于描述內容)。

繼續學習

XML 的使用相當簡單方便,當然前提是要理解 XML 的結構。XML 還提供了一些不同的方法,使用這些方法可以對數據的結構(甚至內容)進行控制。開始使用 XML 之后,您還會困擾于設計 XML 結構的最佳方式,不過這算不上復雜的過程。

新手上路,請閱讀下列文章:

XML 的靈活性意指可用于許多應用程序,比如說配置文件、Web 服務、數據存儲等等。

XML 的用途

從接觸 XML 開始,開發人員就已經發現 XML 的用途多種多樣。下面列出的文章能讓您對 XML 的使用方法有所了解。

存儲數據

顯而易見,XML 可用于存儲數據。在以數據為中心的信息(比如在某個數據庫查找到的數據)和以文檔的中心的信息(比如將數據存儲在 XML 中,以便在不同的環境中顯示出來)這兩個方面,XML 都有自己的優勢。

閱讀下列文章了解更多有關 XML 作為以數據為中心的存儲介質的知識。

如果對存儲 XML 數據感興趣,您應該知道 IBM 發布了一款 DB2 9 免費版本,IBM DB2 Express-C 9。您也應該查閱最新的 DB2 Developer Workbench,通過閱讀以下系列教程可以使在 DB2 9 中使用 XQuery 和 SQL/XML 變得更加容易。

這份系列文章共分三部分,其中第一篇教程展示了如何使用 XML 一般地存儲以文檔為中心的數據,以及如何操縱其表示層:

Web 服務

Web 服務最初用于在 HTTP 上傳遞非 HTML 信息。它們如今已成為通過 Ajax 獲取字段的基礎,用于向 Web 站點、如今的面向服務體系結構(Service Oriented Architecture,SOA)和復雜的基于消息的應用程序添加交互性。XML 是 Web 服務領域不可或缺的一部分。Web 服務中的所有主流方法,如 SOAP、REST 甚至 XML-RPC,都是基于 XML 的。

要了解 XML 在 Web 服務領域中的應用,請閱讀下列文章:

請參閱下面的 XML 與 Web 服務 部分獲得更多信息。

播客和其他數據聯合

如今,XML 最普遍的應用是數據聯合領域。數百萬的 blogger 都在使用 RSS 提要訂閱他們所喜愛的博客上的最新信息。而且商業利益已經發現通過英特網向各種設備(如 iPod,它也使用 XML)發布音頻和視頻的商機了。

要了解數據聯合,請閱讀如下文章:

平臺無關的配置和部署指令

在您所喜愛的應用程序和開發環境的幕后經常都有 XML 存在,它是創建配置或指令文件的通用方法。在人類可讀的 XML 文件中提供配置指令能讓用戶比以前更加方便地控制應用程序的行為。

以下文章介紹了使用 XML 創建配置文件的示例:

XML 可用于應用程序開發嗎?

清單 1 中的標記是最常見的 XML 串行表示,不過在應用程序的上下文中處理 XML 數據也是非常普遍的。在這種情況下,我們通常需要使用到一些模型,其中包括下面所列出的這些。

文檔對象模型(Document Object Model,DOM)

文檔對象模型(DOM)是一個基于對象的,以樹形查看 XML 數據的方法。例如,在 清單 1 中,salesperson、order 和 return 元素都是 transaction 元素的子元素,也就是說它們在層次結構中位于 transaction 的下方。大多數基于 XML 的應用程序在處理 XML 時使用的都是 DOM 方法。

要了解 DOM 請閱讀下列文章和教程:

Simple API for XML(SAX)

由于任何內容都要存放在內存中,所以 DOM 對于操縱數據而言是非常有用的。不過另一方面,其資源占用自然也相應地比較大了。

Simple API for XML(SAX)解決了在內存中同時存放所有內容的問題。SAX 自始至終一直在分析數據,并將所有的事件通知給應用程序,比如 “起始元素” 或 “字符”。SAX 在資源友好方面要勝過 DOM 一籌,但是其操縱數據的方法卻不盡相同。

要了解 SAX,請閱讀下列文章:

DOM 和 SAX 是通過編程手段與 XML 交互的最常見方法,但是有時也可以不通過構建應用程序來操縱 XML 數據。

轉換 XML 數據(XSLT)

有時,甚至無需編程也可以操縱 XML 數據??梢允褂每蓴U展樣式表轉換語言(EXtensible Stylesheet Language Transformation,XSLT)來操縱 XML 數據。XSLT 讓我們能將 XML 文檔轉換為不同 XML 結構的文檔,甚至還可以轉換為非 XML 文檔。XSLT 功能極為強大,并且應用廣泛。

可以在我熟悉的編程語言中使用 XML 嗎?

XML 是與平臺和編程語言無關的,因此我們可以在基本上任何編程語言中使用它,只要底層軟件(比如說解析程序,它讀取標記的文本文件并為數據操縱創建 XML 文檔)可用就沒有問題。要了解如何在各種不同的編程語言中使用 XML,請閱讀下列文章:

Java

Java 中直接內置了 XML 解析和一些其他功能。

PHP

PHP 對 XML 的支持一開始并不順利;其早期實現并未完全與 DOM 規范同步。不過,目前的情形已經好了很多,PHP 提供支持更類似標準的支持。

Perl

Perl 旨在操作文本,因此有時更傾向直接操作文本而不是使用 XML 方法,但是使用 XML 的優勢是顯而易見的。

Python

結合 Python 的易用性和 XML 對跨平臺可用性的注重,這兩者真是天生的一對。

C++

C++ 程序員同樣可以利用 XML 的各種功能。

Ruby

REXML 庫使 Ruby 編程語言能支持 XML。

JavaScript

JavaScript 對 XML 的支持類似于 Java,至少在比較基本的操作方面非常相似。

有現成的 XML 詞匯和應用程序嗎?

隨著開發人開始在各種應用程序中使用 XML,一些標準詞匯或 XML 應用程序也開始涌現出來。例如,XHTML 就是一種 XML 版本的 HTML,播客中也正在使用一種叫做 RSS 的 XML 詞匯??煽s放矢量圖型(Scalable Vector Graphics,SVG)語言提供了一種使用 XML 定義圖形圖象的方法,使一些瀏覽器(如 Firefox)可以呈現它們。

下面討論了一些正在應用中的 XML 示例。

RSS 和聯合

博客經常會提供一些外部提要,用于顯示最近發表的文章并能提供返回原始資料的鏈接。這些提要已經轉變成為巨大的商機,廣告商紛至沓來,音頻和/或視頻或播客 的發布正在成為一些大型傳媒公司(比如廣播電視網 [broadcast television network])關注的焦點。這些提要都是 XML 形式的,或者是 RSS 或 Atom 的某種變體。

可縮矢量圖形(Scalable Vector Graphics,SVG)

圖形之如 SVG,就如桌面發布之如 HTML。SVG 提供了一種使用小的、簡單的文本指令指定圖形的方法。使用 SVG 創建的復雜圖形,不僅帶寬占用小而且可以通過編程進行控制。

XForms

可以把視為 XFoms 下一代的 HTML 表單,它可以指定以表示無關的方式采集信息。這種方式使我們能更加方便地添加更多功能,也使得在其他介質(比如手機)中重用表單更加輕松,這些介質中的信息相同不過表示可能完全不同。

更多 XML 應用

應用 XML 的地方可以說是不勝枚舉,比如說發布、編碼語義數據,甚至那些電話中的語音識別單元也使用了 XML。下面列出了一些例子:

XML 與 Web 服務和 SOA 有何關聯?

盡管可以使用許多技術來實現面向服務體系結構(SOA),不過最常用的還是使用 Web 服務,這意味著要使用 XML。SOAP 和 REST 是實現 Web 服務最流行的兩種方法,這兩者都基于 XML。

一個例子

比如說,通過將這個 SOAP 文檔作為 Web 請求發送,可以向 Google Web 服務提出請求。(如清單 2 所示)

清單 2. 通過發送 SOAP 文檔向 Google Web 服務提出請求

                <?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV=     "http://schemas.xmlsoap.org/soap/envelope/"    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"    xmlns:xsd="http://www.w3.org/1999/XMLSchema">  <SOAP-ENV:Body>    <ns1:doGoogleSearch xmlns:ns1="urn:GoogleSearch"          SOAP-ENV:encodingStyle=                  "http://schemas.xmlsoap.org/soap/encoding/">      <key xsi:type="xsd:string">00000000000000000000000000000000</key>      <q xsi:type="xsd:string">death star trash compactor</q>      <start xsi:type="xsd:int">0</start>      <maxResults xsi:type="xsd:int">10</maxResults>      <filter xsi:type="xsd:boolean">true</filter>      <restrict xsi:type="xsd:string"></restrict>      <safeSearch xsi:type="xsd:boolean">false</safeSearch>      <lr xsi:type="xsd:string"></lr>      <ie xsi:type="xsd:string">latin1</ie>      <oe xsi:type="xsd:string">latin1</oe>    </ns1:doGoogleSearch>  </SOAP-ENV:Body></SOAP-ENV:Envelope>

此處我們可以看到 SOAP 信封(envelope),它是 Web 服務引擎能夠理解的標準格式。這個消息的內容(在本例中為 doGoogleSearch 元素)被認作是 有效載荷(payload),由即將被 Web 服務處理的信息所組成。

Web 服務概覽

事實上,大多數圍繞 Web 服務的標準(存在很多)在本質上都是 XML 詞匯。比如說,Web 服務描述語言(Web Service Description Language)就是一個用于描述服務的 XML 文件。

要了解 XML 和 Web 服務,請閱讀下列文章:

ETTK for Web Services(英文) 是一種 alphaWorks 技術,使用該技術可以輕松地建立 Web 服務環境,包括服務器。

通過 SOA and Web services 新手入門 可以獲得更多有關 XML 和 Web 服務的信息。

XML 在未來所扮演的角色

XML 是當今許多新生技術的核心。比如說,隨著搜索引擎的改進以及向 Semantic Web 的邁進,XML 成了 Web 站點管理員在頁面中添加有意義信息的利器。網格計算和自主計算在不斷發展,XML 在這些技術中的應用也非常顯著。數據庫供應商在不斷探索更加高效存儲 XML 的方法,XML 查詢語言(XML Query Language,XQuery)也在蓬勃發展。

通過閱讀下節中的文章可以幫助您了解 XML 的未來:

RDF、微格式 和其他語義技術

語義 Web 并不需要 XML,但是從當前的技術方式來說這也是眾望所歸的趨勢。大多數信息都是以某種 XML 的形式編碼的,不論是資源描述框架(Resource Description Framework,RDF)還是獨立的微格式。這是因為 XML 的可讀性和可理解性幾乎是通用的。

網格和自主計算

世界越來越小,計算機系統卻日益龐大。尤其是一些研究人員、公司和其他組織開始發現,將他們的系統整合為一個單一的大型系統可以帶來巨大的好處,不僅能提供更強的計算能力還可以通過消除浪費節省資金。由于 XML 具有平臺無關性,因此對于在種類各異的系統之間交換信息,XML 是完美的選擇。

異步的 JavaScript 和 XML(Ajax)

隨著 Web 所提供的功能日益多樣,因此用戶也對日常處理中必不可少的應用程序寄予了相同的期望。通過在后臺中請求信息(XML 中時常如此),并且只替換頁面的一部分內容(而不是強制用戶請求整個新 Web 頁面),Asynchronous JavaScript with XML(Ajax)能為用戶提供更加無縫的體驗。結果,大約在去年期間 Web 便在這一領域取得了跨越式的進展。

Mashups

隨著越來越多的信息可以通過 Web 服務獲得,企業開發人員也發現這些信息還有其他的用途。利用這一數據的方法之一就是 Mashup,它是一種正在發展的應用程序,可以將來自多個源的數據結合到一個單一的視圖中。

改進 XML 技能的最佳方式

如果想要改進您的 XML 技能,最佳的方式就是打下堅實的基礎,然后只需使用它就行了。要獲得入門知識,請閱讀 什么是 XML? 一節中所列出的文章,然后再閱讀 XML 可用于應用程序開發嗎? 一節中的文章。有了這些基礎之后,您便可以學習自己感興趣的領域了。

您還可以努力獲得 IBM 的 XML 認證,要準備該認證請閱讀 準備 XML 及相關技術認證,第 1 部分: 體系結構 和其他的 XML 及相關技術認證系列教程。

結束語

XML 為我們提供了強大的功能和力量,不過幸運的是它本身也是相當簡單和易懂的技術。掌握基礎知識之后(這并不會花多長時間),您就可以選擇學習的方向了。如果您是程序員,那么可以專注于編程和各種 API。如果不是程序員,則可以專注于各種與編程無關的應用??傊?,您都可以在當今世界找到 XML 的一席之地。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用 Access、InfoPath 或結合使用這兩個程序收集和存儲數據 - 幫助和使用方...
WebService性能測試
xml schema中的命名空間
xsi:schemaLocation詳解
XSD schema xmns xsi
XML 中的 xmlns 等屬性的意義
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 上虞市| 腾冲县| 延寿县| 清水河县| 钦州市| 恩平市| 托里县| 万盛区| 鄂尔多斯市| SHOW| 双城市| 讷河市| 根河市| 盐城市| 余姚市| 五寨县| 四子王旗| 沧州市| 行唐县| 墨江| 娱乐| 且末县| 中西区| 宁强县| 扎囊县| 雷山县| 那坡县| 衡阳市| 商丘市| 信丰县| 鄂伦春自治旗| 修武县| 紫云| 施秉县| 始兴县| 盱眙县| 察隅县| 兰考县| 崇文区| 南丹县| 平泉县|