偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

什么是 XML?

開發(fā) 后端
XML 是一種分層的標(biāo)記語言。它使用打開和關(guān)閉標(biāo)簽來定義數(shù)據(jù),它常用來存儲(chǔ)和交換數(shù)據(jù),而且由于它極大的靈活性,不論是在文檔還是圖像中都用的非常多。

[[413728]]

了解一下 XML 吧,它是一種嚴(yán)格但靈活的標(biāo)記語言,無論是在文檔還是圖像方面應(yīng)用都十分廣泛。

XML 是一種分層的標(biāo)記語言。它使用打開和關(guān)閉標(biāo)簽來定義數(shù)據(jù),它常用來存儲(chǔ)和交換數(shù)據(jù),而且由于它極大的靈活性,不論是在 文檔 還是 圖像 中都用的非常多。

這里是一個(gè) XML 文檔的例子:

  1. <xml>
  2.   <os>
  3.    <linux>
  4.     <distribution>
  5.       <name>Fedora</name>
  6.       <release>8</release>
  7.       <codename>Werewolf</codename>
  8.     </distribution>
  9.  
  10.     <distribution>
  11.       <name>Slackware</name>
  12.       <release>12.1</release>
  13.       <mascot>
  14.         <official>Tux</official>
  15.         <unofficial>Bob Dobbs</unofficial>
  16.       </mascot>
  17.     </distribution>
  18.    </linux>
  19.   </os>    
  20. </xml>

閱讀這個(gè)示例 XML,你可能會(huì)發(fā)現(xiàn)這個(gè) XML 的格式具有直觀的特性。 無論你是否熟悉這個(gè)文檔的主題,你都可能理解本文檔中的數(shù)據(jù)。 這部分原因是因?yàn)?XML 被認(rèn)為是冗長(zhǎng)的。 它使用了很多標(biāo)簽,標(biāo)簽可以有很長(zhǎng)的描述性名稱,并且數(shù)據(jù)以分層的方式排序,這有助于解釋數(shù)據(jù)之間的關(guān)系。 你可能從這個(gè)示例中了解到 Fedora 發(fā)行版和 Slackware 發(fā)行版是兩個(gè)不同且不相關(guān)的 Linux 發(fā)行版,因?yàn)槊總€(gè)實(shí)例都“包含”在自己獨(dú)立的 <distribution> 標(biāo)簽中。

XML 也非常靈活。 與 HTML 不同,它沒有預(yù)定義的標(biāo)簽列表。 你可以自由創(chuàng)建你需要表示任何數(shù)據(jù)結(jié)構(gòu)的標(biāo)簽。

XML 的組成

數(shù)據(jù)的存在為了讀取,當(dāng)計(jì)算機(jī)“讀取”數(shù)據(jù)時(shí),該過程稱為 解析。 再次使用示例 XML 數(shù)據(jù),以下是大多數(shù) XML 解析器認(rèn)為重要的術(shù)語。

  • 文檔<xml> 標(biāo)簽標(biāo)記文檔的開始, </xml> 標(biāo)簽標(biāo)記文檔的結(jié)束。
  • 節(jié)點(diǎn)<os><distribution>、<mascot> 這些都是節(jié)點(diǎn),在解析術(shù)語中,節(jié)點(diǎn)是包含其他標(biāo)簽的標(biāo)簽。
  • 元素:像 <name>Fedora</name> 和 <official>Tux</official> 這些都是元素。從第一個(gè)<開始,到最后一個(gè) > 結(jié)束是一個(gè)元素。
  • 內(nèi)容:在兩個(gè)元素標(biāo)簽之間的數(shù)據(jù)被稱之為內(nèi)容,在第一個(gè) <name> 標(biāo)簽中,Fedora 字符串就是一個(gè)內(nèi)容。

XML 模式

XML 文檔中的標(biāo)簽和標(biāo)簽繼承性稱為 模式。

一些模式是隨意組成的(例如,本文中的示例 XML 代碼純粹是即興創(chuàng)作的),而其他模式則由標(biāo)準(zhǔn)組織嚴(yán)格定義。 例如,可縮放矢量圖形(SVG)模式 由 W3C 定義,而 DocBook 模式 由 Norman Walsh 定義。

模式強(qiáng)制執(zhí)行一致性。 最基本的模式通常也是最嚴(yán)格的。 在我的示例 XML 代碼中,將發(fā)行版名稱放在 <mascot> 節(jié)點(diǎn)中是沒有意義的,因?yàn)槲臋n的隱含模式清楚地表明 mascot 必須是發(fā)行版的“子”元素。

數(shù)據(jù)對(duì)象模型(DOM)

如果你必須不斷地描述標(biāo)簽和位置(例如,“系統(tǒng)部分中的 Linux 部分中第二個(gè)發(fā)行版標(biāo)簽的名稱標(biāo)簽”),那么談?wù)?XML 會(huì)讓人感到困惑,因此解析器使用文檔對(duì)象模型(DOM)的概念來表示 XML 數(shù)據(jù)。 DOM 將 XML 數(shù)據(jù)放入一種“家譜”結(jié)構(gòu)中,從根元素(在我的示例 XML 中,即 os 標(biāo)記)開始并包括路徑上的每個(gè)標(biāo)記。 

Document Object Model

這種相同的 XML 數(shù)據(jù)結(jié)構(gòu)可以表示為路徑,就像 Linux 系統(tǒng)中的文件或互聯(lián)網(wǎng)上網(wǎng)頁的位置一樣。 例如,<mascot> 標(biāo)簽的路徑可以表示為 //os/linux/distribution/slackware/mascot

兩個(gè) <distribution> 標(biāo)簽可以被表示為 //os/linux/distribution ,因?yàn)檫@里有兩個(gè)發(fā)行版的節(jié)點(diǎn),因此一個(gè)解析器可以直接將兩個(gè)節(jié)點(diǎn)的內(nèi)容載入到一個(gè)數(shù)組中,可以進(jìn)行查詢。

嚴(yán)格的 XML

XML 也以嚴(yán)格而著稱。 這意味著大多數(shù)應(yīng)用程序被設(shè)計(jì)為在遇到 XML 錯(cuò)誤時(shí)就會(huì)故意失敗。 這聽起來可能有問題,但這是開發(fā)人員最欣賞 XML 的事情之一,因?yàn)楫?dāng)應(yīng)用程序試圖猜測(cè)如何解決錯(cuò)誤時(shí),可能會(huì)發(fā)生不可預(yù)測(cè)的事情。 例如,在 HTML 定義明確之前,大多數(shù) Web 瀏覽器都包含“怪癖模式”,因此當(dāng)人們?cè)噲D查看糟糕的 HTML 代碼時(shí),Web 瀏覽器卻可以加載作者可能想要的內(nèi)容。 結(jié)果非常難以預(yù)測(cè),尤其是當(dāng)一個(gè)瀏覽器的猜測(cè)與另一個(gè)瀏覽器不同時(shí)。

XML 通過在出現(xiàn)故意錯(cuò)誤時(shí)失敗而不允許這樣做。 這讓作者可以修復(fù)錯(cuò)誤,直到它們生成有效的 XML。 因?yàn)?XML 是良好定義的,所以有許多應(yīng)用程序的驗(yàn)證器插件以及像 xmllint 和 xmlstarlet 這樣的獨(dú)立命令來幫助你及早定位錯(cuò)誤。

轉(zhuǎn)換 XML

因?yàn)?XML 通常用作數(shù)據(jù)交換,所以將 XML 轉(zhuǎn)換為其他數(shù)據(jù)格式或其他 XML 模式是很常見的。 經(jīng)典示例包括 XSLTProc、xmlto 和 pandoc,但從技術(shù)上講,還有許多其他應(yīng)用程序或者至少程序的一部分就是在轉(zhuǎn)換 XML。

事實(shí)上,LibreOffice 使用 XML 來布局其文字處理器和電子表格文檔,因此無論何時(shí)你導(dǎo)出或 從 LibreOffice 轉(zhuǎn)換文件,你都在轉(zhuǎn)換 XML。

開源 EPUB 格式的電子書 使用 XML,因此無論何時(shí)你 將文檔轉(zhuǎn)換為 EPUB 或從 EPUB 轉(zhuǎn)換,你都在轉(zhuǎn)換 XML。

Inkscape 是基于矢量的插圖應(yīng)用程序,它將其文件保存在 SVG 中,這是一種專為圖形設(shè)計(jì)的 XML 模式。 任何時(shí)候你將 Inkscape 中的圖像導(dǎo)出為 PNG 文件時(shí),你都在轉(zhuǎn)換 XML。

名單還可以一直繼續(xù)下去。 XML 是一種數(shù)據(jù)存儲(chǔ)格式,旨在確保你的數(shù)據(jù),無論是畫布上的點(diǎn)和線、圖表上的節(jié)點(diǎn),還是文檔中的文字,都可以輕松準(zhǔn)確地提取、更新和轉(zhuǎn)換。

學(xué)習(xí) XML

編寫 XML 很像編寫 HTML。 感謝 Jay Nick 的辛勤工作,在線提供免費(fèi)且有趣的 XML 課程 可以教你如何使用 XML 創(chuàng)建圖形。

通常,探索 XML 所需的特殊工具很少。 由于 HTML 和 XML 之間的密切關(guān)系,你可以 使用 Web 瀏覽器查看 XML。 此外,QXmlEdit、NetBeans 和 Kate 等開源文本編輯器通過有用的提示、自動(dòng)完成、語法驗(yàn)證等,使鍵入和閱讀 XML 變得容易。

選擇 XML

XML 起初可能看起來有很多數(shù)據(jù),但它與 HTML 并沒有太大的不同(實(shí)際上,HTML 已經(jīng) 以 XHTML 的形式重新實(shí)現(xiàn)為 XML)。 XML 有一個(gè)獨(dú)特的好處,即構(gòu)成其結(jié)構(gòu)的標(biāo)簽也恰好是元數(shù)據(jù),提供有關(guān)其存儲(chǔ)內(nèi)容的信息。 精心設(shè)計(jì)的 XML 模式包含并描述你的數(shù)據(jù),使用戶能夠一目了然并快速解析它,并使開發(fā)人員能夠使用一些庫 快速解析。 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2009-09-14 16:17:03

什么是LINQ To

2021-03-20 22:46:22

IaaSSaaSPaaS

2023-09-01 13:49:00

內(nèi)存進(jìn)程線程

2020-07-14 14:59:00

控制反轉(zhuǎn)依賴注入容器

2017-12-19 21:29:58

物聯(lián)網(wǎng)區(qū)塊鏈大數(shù)據(jù)

2020-11-20 10:51:03

云計(jì)算

2018-01-30 11:17:56

集群分布式SOA?

2023-09-14 15:00:31

2012-04-25 17:15:44

EA

2009-07-16 09:56:32

什么是iBATIS

2016-06-13 14:49:40

2022-08-15 06:00:00

二進(jìn)制編程語言

2016-05-09 10:31:29

DockerLinux

2011-08-16 18:39:05

Ubuntu

2010-08-26 09:27:53

DHCP服務(wù)器

2009-08-14 15:42:11

什么是.NET接口.NET抽象類

2020-11-10 07:05:41

DockerK8S云計(jì)算

2023-12-06 12:11:43

類加載器雙親委派模型

2011-06-30 18:23:08

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)