主頁(yè) > 知識(shí)庫(kù) > XML入門(mén)問(wèn)答

XML入門(mén)問(wèn)答

熱門(mén)標(biāo)簽:400電話(huà)辦理包年 東營(yíng)電銷(xiāo) 高德地圖地圖標(biāo)注服務(wù)中心 隨州外呼調(diào)研系統(tǒng) 南寧網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商 如何修改多個(gè)百度地圖標(biāo)注 微信地圖標(biāo)注合并了 本地電話(huà)機(jī)器人 r語(yǔ)言數(shù)據(jù)可視化地圖標(biāo)注
什么是置標(biāo)語(yǔ)言?
----------------------

  我們?nèi)粘?shū)寫(xiě)的語(yǔ)言,被稱(chēng)為書(shū)面自然語(yǔ)言。如果在書(shū)面自然語(yǔ)言中為了標(biāo)識(shí)某些信息,而加入一些標(biāo)記,這種書(shū)面自然語(yǔ)言就可被稱(chēng)為置標(biāo)語(yǔ)言(英語(yǔ)為:Markup Language)。比如在一段書(shū)面語(yǔ)言中,為了說(shuō)明某一句話(huà)的重要,在這句話(huà)下面畫(huà)上底劃線(xiàn)。但是,我們?cè)谶@里解釋的置標(biāo)語(yǔ)言,實(shí)際上是一種為了計(jì)算機(jī)處理而設(shè)計(jì)的置標(biāo)語(yǔ)言,其中所用到的標(biāo)記,往往使用代表一定含義的文字或數(shù)字表示。通常的做法是,根據(jù)需要,先定義一套助意的標(biāo)記,然后將這套標(biāo)記添加到書(shū)面語(yǔ)言中去,使書(shū)面語(yǔ)言變成置標(biāo)語(yǔ)言。

  例如,我們?yōu)榱俗層?jì)算機(jī)了解,一段書(shū)面語(yǔ)言中,那一部分是標(biāo)題,那一部分是作者名,那一部分是正文,我們定義如下一套標(biāo)記:

  標(biāo)題>、/標(biāo)題>;作者>、/作者>;正文>、/正文> 那么,我們就可以將上面這段書(shū)面語(yǔ)言改寫(xiě)成置標(biāo)語(yǔ)言:

標(biāo)題>什么是置標(biāo)語(yǔ)言?/標(biāo)題>

作者>xml.net.cn/作者>

正文>我們?nèi)粘?shū)寫(xiě)的語(yǔ)言,被稱(chēng)為書(shū)面自然語(yǔ)言?!?…/正文>

  置標(biāo)語(yǔ)言,不同于一般的控制流程序設(shè)計(jì)語(yǔ)言,基本上可以被視為是一種數(shù)據(jù)流的文檔結(jié)構(gòu)描述語(yǔ)言。在計(jì)算機(jī)處理過(guò)程中,置標(biāo)語(yǔ)言的標(biāo)記既可以作為數(shù)據(jù),也可以作為控制語(yǔ)句來(lái)使用。

  在計(jì)算機(jī)程序語(yǔ)言中,一般把一種語(yǔ)言的定義整體稱(chēng)為某某程序設(shè)計(jì)語(yǔ)言,而把用這種語(yǔ)言編寫(xiě)的文字段落,稱(chēng)為某某語(yǔ)言程序。套用這個(gè)習(xí)慣,我們把置標(biāo)語(yǔ)言的定義整體稱(chēng)為某某置標(biāo)語(yǔ)言,而把用這種置標(biāo)語(yǔ)言編寫(xiě)的文字段落,稱(chēng)為某某語(yǔ)言文檔。如果我們把上面定義的那套標(biāo)記叫做"文章置標(biāo)語(yǔ)言"的話(huà),那么下面那段置標(biāo)語(yǔ)言,就可稱(chēng)為"文章置標(biāo)語(yǔ)言文檔"。


----------------------

什么是SGML?

----------------------

  從字面上看,SGML(Standard Generalized Markup Language--標(biāo)準(zhǔn)的通用置標(biāo)語(yǔ)言)是一種置標(biāo)語(yǔ)言,實(shí)際上它是一種通用的文檔結(jié)構(gòu)描述置標(biāo)語(yǔ)言,主要用來(lái)定義文獻(xiàn)模型的邏輯和物理類(lèi)結(jié)構(gòu)。SGML是ISO組織于1986年發(fā)布的ISO 8879國(guó)際標(biāo)準(zhǔn)。

  一個(gè)SGML語(yǔ)言程序,要由三部分組成,即語(yǔ)法定義、文件類(lèi)型定義(簡(jiǎn)稱(chēng)DTD--Definition Type Document)和文件實(shí)例。語(yǔ)法定義,定義了文件類(lèi)型定義和文件實(shí)例的語(yǔ)法結(jié)構(gòu);文件類(lèi)型定義,定義了文件實(shí)例的結(jié)構(gòu)和組成結(jié)構(gòu)的元素類(lèi)型。文件實(shí)例是SGML語(yǔ)言程序的主體部分。

  SGML的實(shí)際使用中,每一個(gè)特定的DTD都定義了一類(lèi)文件。例如,所有的新聞稿件都可以使用同一個(gè)DTD。因此,人們習(xí)慣上把具有某一特定DTD的SGML語(yǔ)言,稱(chēng)為某某置標(biāo)語(yǔ)言。例如用于國(guó)際互聯(lián)網(wǎng)的HTML語(yǔ)言。這樣SGML就成為那些派生語(yǔ)言的元語(yǔ)言。


----------------------

什么是XML?

----------------------
  XML是eXtensible Markup Language(可擴(kuò)展的置標(biāo)語(yǔ)言)的縮寫(xiě),是W3C組織于1998年2月發(fā)布的標(biāo)準(zhǔn)。W3C組織制定XML標(biāo)準(zhǔn)的初衷是,定義一種互聯(lián)網(wǎng)上交換數(shù)據(jù)的標(biāo)準(zhǔn)。W3C采取了簡(jiǎn)化SGML的策略,在SGML基礎(chǔ)上,去掉語(yǔ)法定義部分,適當(dāng)簡(jiǎn)化DTD部分,并增加了部分互聯(lián)網(wǎng)的特殊成分。因此,XML也是一種置標(biāo)語(yǔ)言,基本上是SGML的一個(gè)子集。因?yàn)閄ML也有DTD,所以XML也可以作為派生其它置標(biāo)語(yǔ)言的元語(yǔ)言。
----------------------

什么是HTML?

----------------------
 HTML是Hypertext Markup Language(超文本置標(biāo)語(yǔ)言)的縮寫(xiě),是SGML的一個(gè)實(shí)例,是W3C組織發(fā)布的標(biāo)準(zhǔn),是專(zhuān)門(mén)為在互聯(lián)網(wǎng)上發(fā)布信息而設(shè)計(jì)的置標(biāo)語(yǔ)言。
----------------------

XML、SGML、HTML之間是什么關(guān)系?

----------------------
  HTML是SGML的一個(gè)實(shí)例,它的DTD作為標(biāo)準(zhǔn)被固定下來(lái),因此,HTML不能作為定義其它置標(biāo)語(yǔ)言的元語(yǔ)言。XML是SGML的一個(gè)子集,嚴(yán)格地講,XML也還是SGML。與HTML不同的是,XML有DTD,因而也可以象SGML那樣,作為元語(yǔ)言,來(lái)定義其它文件系統(tǒng),或稱(chēng)其它置標(biāo)語(yǔ)言。如果把置標(biāo)語(yǔ)言分為元置標(biāo)語(yǔ)言和實(shí)例置標(biāo)語(yǔ)言的話(huà),SGML和XML都是元置標(biāo)語(yǔ)言,而HTML和由XML派生的XHTML都是實(shí)例置標(biāo)語(yǔ)言。
----------------------

XML的用途是什么?

----------------------
  在國(guó)際互聯(lián)網(wǎng)上,服務(wù)器與服務(wù)器之間、服務(wù)器與瀏覽器之間有大量的數(shù)據(jù)需要交換,特別是在電子商務(wù)中。這些被交換的數(shù)據(jù),都被要求對(duì)數(shù)據(jù)的內(nèi)容和表現(xiàn)方式有所說(shuō)明,用置標(biāo)語(yǔ)言擔(dān)當(dāng)這個(gè)重任是再合適不過(guò)了。應(yīng)該說(shuō)SGML完全可以扮演這個(gè)國(guó)際互聯(lián)網(wǎng)上數(shù)據(jù)交換標(biāo)準(zhǔn)語(yǔ)言的角色,然而由于SGML對(duì)互聯(lián)網(wǎng)應(yīng)用來(lái)講太復(fù)雜了,因而需要一種即能象SGML那樣作為元語(yǔ)言使用,又能比較簡(jiǎn)單地進(jìn)行處理的置標(biāo)語(yǔ)言,來(lái)?yè)?dān)此重任。在這種背景下XML就應(yīng)運(yùn)而生了。因此在互聯(lián)網(wǎng)世界XML的用途主要有兩個(gè),一是作為元置標(biāo)語(yǔ)言,定義各種實(shí)例置標(biāo)語(yǔ)言標(biāo)準(zhǔn);二是作為標(biāo)準(zhǔn)交換語(yǔ)言,擔(dān)負(fù)起描述交換數(shù)據(jù)的作用。
----------------------

HTML已經(jīng)這樣流行了,為什么還要發(fā)展XML?

----------------------

  簡(jiǎn)單地講,HTML不能完成,我們希望XML所要完成的任務(wù)。原因很簡(jiǎn)單,XML所要完成的任務(wù),必須由元置標(biāo)語(yǔ)言來(lái)完成,而HTML只是一個(gè)實(shí)例置標(biāo)語(yǔ)言。 在XML發(fā)布之前,國(guó)際互聯(lián)網(wǎng)的發(fā)展受到HTML如下幾個(gè)問(wèn)題的束縛:

1) HTML無(wú)法描述數(shù)據(jù)內(nèi)容,而這一點(diǎn)恰恰是數(shù)據(jù)檢索、電子商務(wù)所必須的。

2) HTML對(duì)數(shù)據(jù)表現(xiàn)的描述能力是十分不夠的,如HTML還不能描述矢量圖形、   科學(xué)符號(hào)等對(duì)象,目前只能通過(guò)圖象來(lái)表現(xiàn)這些對(duì)象。

3) HTML實(shí)例置標(biāo)語(yǔ)言的地位,完全不能適應(yīng)對(duì)新標(biāo)記需求的發(fā)展需要。   

  XML的出現(xiàn),使上述問(wèn)題都得到很好的解決。


----------------------

XML怎樣簡(jiǎn)化SGML?

----------------------
  為簡(jiǎn)單化SGML,XML重新定義了一些SGML的內(nèi)部值和參數(shù),并刪去了大量繁雜的、不常用的、使編程復(fù)雜的特征(見(jiàn)http://www.w3.org/TR/NOTE-sgml-xml-971215)。
----------------------

用XML你能定義自己的文件類(lèi)型(DTD)嗎?

----------------------
  回答是肯定的。這也是XML與HTML區(qū)別最大的地方。
----------------------

誰(shuí)對(duì)XML負(fù)責(zé)?

----------------------
  XML是W3C組織的一個(gè)項(xiàng)目,XML規(guī)格說(shuō)明書(shū)是W3C組織的XML工作組制定的,這個(gè)工作組由各領(lǐng)域、公司的專(zhuān)家和協(xié)作者組成,并通過(guò)E_mail方式交換信息,進(jìn)行修改和完善。XML是集體智慧的結(jié)晶,不是某個(gè)公司的專(zhuān)利。 1.0版規(guī)格說(shuō)明書(shū)由W3C認(rèn)可,并在1998年2月10日正式推薦使用。
----------------------

為什么XML如此重要?

----------------------
  試想在互聯(lián)網(wǎng)世界,如果大家都講方言,互相交換信息時(shí)都要進(jìn)行翻譯,那將是一個(gè)多么難以溝通和交流的世界。在互聯(lián)網(wǎng)世界,XML之所以重要,恰恰是由于它扮演了"國(guó)際語(yǔ)言"角色的緣故。此外,XML更為互聯(lián)網(wǎng)世界提供了定義各行各業(yè)的"專(zhuān)業(yè)術(shù)語(yǔ)"的工具。

----------------------

什么是文檔類(lèi)型定義(DTD)?

----------------------
  文檔類(lèi)型定義 (DTD) 是一套關(guān)于標(biāo)記符的語(yǔ)法規(guī)則。 它告訴你可以在文檔中使用哪些標(biāo)記符, 它們應(yīng)該按什么次序出現(xiàn), 哪些標(biāo)記符可以出現(xiàn)于其它標(biāo)記符中, 哪些標(biāo)記符有屬性, 等等. DTD原來(lái)是為使用SGML開(kāi)發(fā)的, 它可以是XML文檔的一部分, 但是它通常是一份單獨(dú)的文檔或者一系列文檔 。XML本身并沒(méi)有一個(gè)通用的DTD,想使用XML進(jìn)行數(shù)據(jù)交換的行業(yè)或組織可以定義它們自己的DTD。
----------------------

如何在瀏覽器中閱讀XML?

----------------------
  閱讀XML文檔的工具一般稱(chēng)為XML解析器, 也稱(chēng)為XML處理器。 XML處理器將數(shù)據(jù)傳送到應(yīng)用軟件, 以便處理, 出版, 查詢(xún), 或顯示。XML不給應(yīng)用軟件提供 應(yīng)用程序接口 (API), 它只是把數(shù)據(jù)傳給應(yīng)用軟件. XML處理器不解析非構(gòu)造良好的數(shù)據(jù)。 Netscape 和 Microsoft 都已經(jīng)將XML解析器包含在其瀏覽器中。 XML開(kāi)發(fā)者團(tuán)體提供免費(fèi)的XML閱讀器和解析器, 以便在應(yīng)用軟件或XML制作軟件中進(jìn)行應(yīng)用。
----------------------

使用問(wèn)題
如何得到XML瀏覽器?

----------------------

  XML標(biāo)準(zhǔn)已經(jīng)發(fā)布規(guī)格說(shuō)明書(shū)新出臺(tái)不久,所以現(xiàn)在很多都是在試驗(yàn)階段的軟件。而處理HTML的瀏覽器有許多。但是將來(lái)會(huì)涌現(xiàn)大量不同領(lǐng)域的XML應(yīng)用程序,所以不要指望會(huì)有一個(gè)瀏覽器能100%的處理好所有的程序。

  XML的工具(如解釋器(parsing),樹(shù)結(jié)構(gòu)管理(tree management),搜索(searching),格式化工具(formatting)等等)都被加在瀏覽器的庫(kù)(libraries)里或工具包(toolkit)中,幫助開(kāi)發(fā)人員更容易編寫(xiě)XML程序。這種應(yīng)用程序可以通過(guò)增加相應(yīng)的語(yǔ)義來(lái)修改,使之適用于 另一個(gè)特殊領(lǐng)域,或使用Java等語(yǔ)言為瀏覽器開(kāi)發(fā)plugins等嵌入程序,在Web上傳輸某一模塊。

  Microsoft公司的IE4和5瀏覽器可以處理一些Microsoft-oriented的XML程序,但顯示時(shí)要轉(zhuǎn)換為HTML文件。 詳情見(jiàn)development work at Microsoft和how to enable it。 Arbortext的XML Stylesheet program頁(yè)中介紹怎樣使用XML+XSL。你也需要ActiveX controls和XSL codebase。 Microsoft建議你可以在HTML文件中加入XML段,因?yàn)楝F(xiàn)在的只支持HTML的瀏覽器會(huì)忽略不認(rèn)識(shí)的標(biāo)識(shí)元素。

  可以下載的Netscape(Mozilla)瀏覽器已經(jīng)通過(guò)一個(gè)XML+RDF測(cè)試,其中使用James Clark的expatXML解釋器(parser)。

  請(qǐng)看面向程序設(shè)計(jì)人員和軟件和工具開(kāi)發(fā)商中軟件部分的注意說(shuō)明(notes),更詳細(xì)的資料列在 http://www.oasis-pen.org/cover/xml.html。


----------------------

為什么要使用XML而不是HTML?

----------------------

  比較重要的原因有以下六條:

 ?。保┳髡吆凸?yīng)商能使用XML設(shè)計(jì)自己的文檔類(lèi)型,不必被HTML所約束。

  2)由于XML的超文本鏈接能力比HTML強(qiáng)得多,XML提供的信息內(nèi)容比      HTML更豐富,也更易于使用。

 ?。常ML能提供更多更好的機(jī)制方便瀏覽器的信息表現(xiàn)和優(yōu)化性能。

 ?。矗ML舍棄了SGML的復(fù)雜性,因此編寫(xiě)處理XML的應(yīng)用程序會(huì)很容易。

  5)信息易于存儲(chǔ),可重復(fù)使用。

  6)XML文件在SGML環(huán)境中也可使用,不一定要局限于在WEB中使用。


----------------------

必須從SGML或HTML轉(zhuǎn)向XML嗎?

----------------------
  沒(méi)有必要?,F(xiàn)有的SGML和HTML應(yīng)用軟件將會(huì)繼續(xù)和現(xiàn)有文件一起工作。但是如果你想查看或下載使用XML文件,你就需要使用能夠理解、處理XML的程序。
----------------------

可以用Java創(chuàng)建和管理XML文件嗎?

----------------------
  是的,任何程序設(shè)計(jì)語(yǔ)言都能被用來(lái)從XML形式的源文檔中輸出數(shù)據(jù)。已經(jīng)出現(xiàn)了許多的前端和后臺(tái)工具使得程序設(shè)計(jì)和數(shù)據(jù)管理更加方便。下面兩個(gè)網(wǎng)址有更加詳細(xì)的說(shuō)明: http://developerlife.com >http://www.markwatson.com/XMLdb_0_1.htm http://developerlife.com
----------------------

開(kāi)發(fā)問(wèn)題
XML的規(guī)格說(shuō)明書(shū)在哪里?

----------------------

  從http://www.w3.org/TR/REC-xml中就可以找到。


----------------------

“DTDless”、“valid”和“well-formed”等術(shù)語(yǔ)的含意是什么?

----------------------
  在標(biāo)準(zhǔn)SGML文檔中,所有用到的標(biāo)記、元素、元素的屬性都必須由文件類(lèi)型定義(DTD)來(lái)說(shuō)明。但是這種限制在XML的應(yīng)用中并不是總是需要的,所以XML文檔被設(shè)計(jì)成既可以帶有DTD,也可以沒(méi)有DTD文件。DTDless的意思是沒(méi)有DTD的XML文件,你可以創(chuàng)建自己的標(biāo)識(shí)和元素,但不用在DTD中正式定義。DTDless文件通過(guò)創(chuàng)建元素時(shí)對(duì)它們直接進(jìn)行定義。但是當(dāng)XML應(yīng)用程序,如一個(gè)瀏覽器遇到DTDless文件時(shí),因?yàn)闆](méi)有DTD文件告訴瀏覽器關(guān)于這個(gè)文件的結(jié)構(gòu)信息,所以創(chuàng)建DTDless文檔時(shí),仍需要一些規(guī)則來(lái)進(jìn)行規(guī)范。這樣“well_formed”XML文檔的概念就相應(yīng)產(chǎn)生了,它明確規(guī)定了書(shū)寫(xiě)XML文檔的語(yǔ)法規(guī)范。所有符合這個(gè)規(guī)范的XML文檔就被稱(chēng)為是“well_formed”的XML文檔。如果一個(gè)“well_formed”的XML文檔,包含了DTD說(shuō)明,那么這個(gè)文檔就被稱(chēng)為是一個(gè)“valid”的XML文檔了。
----------------------

為什么XML文件的分析結(jié)果出現(xiàn)亂碼?

----------------------

  這是由編碼問(wèn)題引起的。XML標(biāo)準(zhǔn)規(guī)定,XML分析器必須支持“UTF-8”和“UTF-16”編碼,而且必須能夠自動(dòng)區(qū)分這兩種編碼的文件,對(duì)于其他編碼(包括常用的中文編碼“GB2312”或“BIG5”)并不要求支持。如果XML文件中包含編碼聲明,分析器則按照聲明的編碼進(jìn)行處理,否則就按照識(shí)別結(jié)果進(jìn)行處理(識(shí)別的結(jié)果總是“UTF-8”和“UTF-16”中的一種)。因此,如果XML文件的編碼在這兩種之外,你必須在XML文件前加上編碼聲明,如:?xml version="1.0" encoding="gb2312"?>就表示XML文件的編碼是“gb2312”。

  現(xiàn)有的XML分析器大多不支持中文編碼“GB2312”或“BIG5”,因此無(wú)法讀取包含中文的XML文件。你可以使用支持中文編碼的分析器,如MSXML,IBMJAVA4C,IBMJAVA4J等進(jìn)行XML分析。你也可以用內(nèi)碼轉(zhuǎn)換工具,將編碼轉(zhuǎn)換為“UTF-8”或“UTF-16”后進(jìn)行解析,然后將解析結(jié)果轉(zhuǎn)換回原來(lái)的編碼。本站的軟件園地中的ccnv(Code Converter)就是這樣的工具。當(dāng)然,你也可以自己寫(xiě)一個(gè)內(nèi)碼轉(zhuǎn)換程序。

  關(guān)于“UTF-8”和“UTF-16”編碼的詳細(xì)信息,請(qǐng)查看本站標(biāo)準(zhǔn)薈萃中的UTF-16和UTF-8標(biāo)準(zhǔn)。


----------------------

XML如何與數(shù)據(jù)庫(kù)連接?

----------------------

  XML是一種文件格式,它沒(méi)有規(guī)定與數(shù)據(jù)庫(kù)的連接方法,你需要用傳統(tǒng)的方法連接數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)庫(kù)查詢(xún),然后將查詢(xún)結(jié)果轉(zhuǎn)化為XML格式。現(xiàn)在有一些工具提供了XML與數(shù)據(jù)庫(kù)的連接過(guò)程大都遵循這樣的步驟。下面是一個(gè)利用ASP直接生成XML文件的例子,你可以訪問(wèn)http://www.xml.net.cn/Asps/test/roster1.asp查看執(zhí)行效果。

復(fù)制代碼 代碼如下:
%@ language="VBScript" %>
?xml version="1.0" encoding="gb2312"?>
?xml:stylesheet type="text/xsl" href="../image/roster.xsl"?> 
roster>

set cConn = Server.CreateObject("ADODB.Connection")
call cConn.Open("DSN","USER", "PWD")
set rs = cConn.Execute("SELECT DISTINCT * FROM roster")
Do While Not rs.EOF %>
Record>
Name>%=trim(rs("name"))%>/Name>
NativePlace>%=trim(rs("NativePlace"))%>/NativePlace>
Age>%=trim(rs("Age"))%>/Age>
Telephone>%=trim(rs("Telephone"))%>/Telephone>
/Record>
% rs.MoveNext 
Loop
rs.Close
set rs=nothing
set cConn=nothing
%>
/roster> 
 

標(biāo)簽:拉薩 寧夏 西雙版納 黃石 益陽(yáng) 德州 宿遷 果洛

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XML入門(mén)問(wèn)答》,本文關(guān)鍵詞  XML,入門(mén),問(wèn)答,XML,入門(mén),問(wèn)答,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《XML入門(mén)問(wèn)答》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于XML入門(mén)問(wèn)答的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章