成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

XML的傳奇人生

開發 開發工具
們是個大家族, 比如XML DTD 和 XML Schema , 這哥倆專門負責對XML進行校驗, 一個程序拿到一個XML數據以后,只需要用DTD/Schema 校驗一下,就知道這個數據是不是缺胳膊少腿, 如果真有問題, 就不用費心繼續讀取了。

1.誕生和發展

我雖然20歲不到, 可已經是滿臉滄桑了, 這不能怪我, 你們人類的IT技術發展的實在太快。很多技術別說20歲了, 10歲,甚至5歲都活不到就銷聲匿跡了。

20年來, 我有著波瀾壯闊的人生, 曾經在多個領域占據統治地位, 但如今這些領域已經被侵蝕得不成樣子了。

我的誕生可以算是一個分水嶺,在此之前,程序之間想交換數據, 都用自定義的格式, 千奇百怪,無所不有,比如:

[978-7-229-03093-3|三體|劉慈欣|中國最牛的科幻書|38.00]

{978-7-229-03093-3 三體 劉慈欣 中國最牛的科幻書 38.00}

{(978-7-229-03093-3) (三體) (劉慈欣) (中國最牛的科幻書) (38.00)}

這些字都認識, 意思也能猜個八九不離十, 但是非要問精確的含義是什么,只有互相交談的兩個程序知道了, 如果第三個程序也想摻乎進來, 必須得問問碼農每個字段到底是什么意思才可以。

現在好了, 你只要看看用我XML來描述,就立刻明白了:

  1. <book> 
  2. <isbn>978-7-229-03093-3</isbn> 
  3. <name>三體</name
  4. <author>劉慈欣</author> 
  5. <desc>中國最牛的科幻書</desc
  6. <price>38.00</price> 
  7. </book> 

我成為了一個通用的世界語,無論你是Java, C#, Python...... 只要你能讀取XML的格式, 就可以互相交談, 很明顯這種簡單的格式解析起來沒啥難度, 一大批支持各種語言的XML解析器如雨后春筍般冒了出來。

我們是個大家族, 比如XML DTD 和 XML Schema , 這哥倆專門負責對XML進行校驗, 一個程序拿到一個XML數據以后,只需要用DTD/Schema 校驗一下,就知道這個數據是不是缺胳膊少腿, 如果真有問題, 就不用費心繼續讀取了。

還有號稱小李飛刀的XPath, 能夠迅速而精準地從一大段復雜的XML中刺中特定的節點,根本不用你費心費力地一層一層的尋找。

百變大師XSL/XSLT , 能輕松地把XML轉換為另外一種表示和格式,例如HTML, 功能之強大令人瞠目結舌。

我們一大家子互相扶持,迅速地征服了數據交換和傳輸這一領地。

不僅如此,我們家族還成功地和Java 結盟, 更上一層樓。 一個是跨平臺的語言, 另外一個也是跨平臺的語言,你說是不是絕配?

2 攻城掠地

除了數據傳輸以外, 我最早在配置文件領域取得了成功, 說道配置文件, 之前都是簡單的key=value 這樣的屬性文件, 描述簡單的結構還行, 對于復雜的結構就力不從心了, 我XML就不同了, 全稱是‘Extensible Markup Language’ , 可擴展性極強,標簽隨意定制,即使是在復雜的邏輯下,我XML也是得心應手,我給你看個web.xml的例子吧:

人民群眾的眼睛是雪亮的, 看到我的可擴展性這么強悍,想定義啥tag就定義啥tag , 紛紛從屬性文件倒戈, 什么Struts , Spring ,Hibernate , MyBatis 寫配置文件時不約而同地選擇了我。

這是個巨大的勝利啊, 除了這個之外,我還成功地進入了新的領域, 還是先看個例子:

這個代碼片段中<copy>是表示把文件從一個地方復制到另外一個地方。 <zip>是把文件打成zip包 , 是不是一目了然?

這其實是Ant的一段代碼, 你一看就明白是怎么回事了, 所以我非常適合描述任務和流程, 因為其中有復雜的控制,其實你想想,Ant是用我的標簽定義了一套自動化處理的‘語言’出來, 程序員可以用這個‘語言’ 寫出非常復雜的程序出來, 厲害吧?

還有一個很好的例子, 10多年前各大廠商鼓噪SOA, Web 服務開始流行, 它也要做成跨平臺的,需要一種方式來描述一個Web服務有什么操作, 調用這個操作需要什么輸入參數, 有哪些輸出參數等等 。 我一想這簡直就是為我量身定制的啊。我輕輕松松就可以搞定:”

雖然有些冗長, 但是也沒辦法, 我那tag 就是成對出現的啊。

我沒有想到的是,程序員也把我應用到了界面描述的領域, 其實界面的生成是個大老難的問題, 人類曾經走了兩個極端, 一個是把界面布局,控件等信息都塞到一個文件當中, 這個文件通常不是人直接可讀的,而是由編輯器來裝載的, 例如VB。 還有一個極端就是完全用代碼來生成界面, Java Swing 就是杰出的代表。

既然我的描述能力這么強大, 完全可以拿來描述界面啊, 就像描述任務和流程一樣。 然后程序或者框架讀取XML,把界面生成不就可以了。

要想有直觀認識的話可以看看Android, 還有早期Firefox 的XUL , 微信的XAML都是用我來描述界面的。

總而言之,我在數據交換, 配置文件, 任務和流程的描述, Web服務的描述, 還有界面描述領域都取得了成功, 不是自夸, 這個時候確實是我人生的***

3 蠶食

好景不長, 俗話說物極必反,盛極必衰。 在數據傳輸和數據交換這個領域, 很快被Javascript 和 JSON 撕開了一個口子, 他們充分地利用了人們對冗余標簽的不滿, 搞出了這樣簡潔的格式:

簡潔,數據量小, 方便傳輸, 更重要的是Javascript 解析起來非常方便。

我說你們這是亂搞, 沒有schema , 你這數據怎么驗證啊?出錯了怎么辦?

他們告訴我, 老先生,您想多了,我們用JSON做同一個應用內的數據傳輸, 從瀏覽器到服務器, 或者從App到服務器, 同一個公司的人, 只要接口定義好,大部分情況下都沒問題,不用費心做驗證, 即使數據被損壞,拋出錯誤就行了啊。

我表示無語, 只能眼睜睜地看著JSON攻城掠地, 把數據傳輸這一塊高地慢慢地蠶食了。

再說說配置文件吧, 原來喜歡我的碼農開始抱怨, 他們說XML描述又臭又長,說簡短的配置文件還可以, 稍微長一點看起來頭都暈了。

怎么辦? Spring, Hibernate 這幫家伙見風使舵, 紛紛轉向Java注解。XML文件配置能干的活, Java注解也可以做, 甚至干的更好, 于是我又流失了一大批擁躉。

SOA也好景不長,逐漸沒落,有個叫Roy Thomas Fielding的家伙 發表了一篇論文, 提了一個叫做RESTful風格的Web架構出來, 搞得人心浮動, RESTful風格的服務開始大行其道, 使用傳統Web 服務的人越來越少, 既然沒人用Web 服務, 也就沒人使用XML來寫WSDL, 于是這塊陣地也慢慢的丟失了。

屈指一算, 我丟失了三塊重要的陣地, 很快從***滑落了。

不是我不明白,是技術變化實在快,現在唯一能安慰我的就是在復雜的結構、任務、流程的描述方面, 我還有著不可替代的作用。

如果有一天出現一門全新的技術把我替代了, 我就老老實實讓位, 去養老院找我爺爺GML(Generalized Markup Language ) 養老去吧。

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2009-01-06 09:00:31

喬布斯傳奇人生iPhone

2016-10-11 17:21:30

IT

2022-08-09 11:15:28

CIOIT

2011-12-28 09:31:25

程序員

2016-03-15 12:12:00

2011-07-28 09:49:43

Linux社區Debian

2011-07-22 10:58:44

Linux社區Ubuntu

2011-10-24 09:42:00

C語言

2010-03-16 11:03:00

計算機鼻祖物理學著作

2016-03-24 18:47:27

網絡安全技術周刊

2013-12-26 09:57:32

2015-04-23 08:51:53

2022-06-10 10:47:31

CIO董事會

2021-03-15 15:15:09

數據管理

2023-05-15 15:10:25

開發技術

2010-04-12 09:40:22

江民之子

2020-04-10 10:33:56

Vim文本編輯Linux

2011-12-13 15:03:58

Amazon

2014-12-12 09:21:46

dotCloudDockerPaaS

2021-12-06 07:31:54

惠普硅谷IT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色毛片视频 | 91免费在线视频 | www国产亚洲精品久久网站 | 丝袜一区二区三区 | 免费观看黄网站 | 国产一区欧美一区 | 国产自产c区 | 欧美操操操 | 日本成人在线网址 | 日韩福利电影 | 久久av一区二区三区 | 久久丝袜 | 99精品久久久| 国产一区二区三区在线 | 免费黄色a级毛片 | 国产区在线观看 | 久久久久国产精品 | 日韩国产在线 | 成人欧美一区二区三区黑人孕妇 | 欧美伊人影院 | 午夜激情影院 | 在线观看成人免费视频 | 精品国产伦一区二区三区观看说明 | 国产精品久久av | 成人免费小视频 | 欧美日韩亚| 欧美一级欧美一级在线播放 | 国产一级片免费在线观看 | 日本免费一区二区三区四区 | 亚洲另类春色偷拍在线观看 | 国产精品日日做人人爱 | 日韩在线看片 | 午夜专区 | 麻豆亚洲 | 97伦理 | 黄色在线免费观看 | 久久久国产精品一区 | 人人做人人澡人人爽欧美 | 97超碰免费| 欧美video | 精品免费av|