我們?nèi)粘鴮懙恼Z言,被稱為書面自然語言。如果在書面自然語言中為了標(biāo)識某些信息,而加入一些標(biāo)記,這種書面自然語言就可被稱為置標(biāo)語言(英語為:Markup Language)。比如在一段書面語言中,為了說明某一句話的重要,在這句話下面畫上底劃線。但是,我們在這里解釋的置標(biāo)語言,實際上是一種為了計算機處理而設(shè)計的置標(biāo)語言,其中所用到的標(biāo)記,往往使用代表一定含義的文字或數(shù)字表示。通常的做法是,根據(jù)需要,先定義一套助意的標(biāo)記,然后將這套標(biāo)記添加到書面語言中去,使書面語言變成置標(biāo)語言。
例如,我們?yōu)榱俗層嬎銠C了解,一段書面語言中,那一部分是標(biāo)題,那一部分是作者名,那一部分是正文,我們定義如下一套標(biāo)記:
標(biāo)題>、/標(biāo)題>;作者>、/作者>;正文>、/正文> 那么,我們就可以將上面這段書面語言改寫成置標(biāo)語言:
標(biāo)題>什么是置標(biāo)語言?/標(biāo)題>
作者>xml.net.cn/作者>
正文>我們?nèi)粘鴮懙恼Z言,被稱為書面自然語言。… …/正文>
置標(biāo)語言,不同于一般的控制流程序設(shè)計語言,基本上可以被視為是一種數(shù)據(jù)流的文檔結(jié)構(gòu)描述語言。在計算機處理過程中,置標(biāo)語言的標(biāo)記既可以作為數(shù)據(jù),也可以作為控制語句來使用。
在計算機程序語言中,一般把一種語言的定義整體稱為某某程序設(shè)計語言,而把用這種語言編寫的文字段落,稱為某某語言程序。套用這個習(xí)慣,我們把置標(biāo)語言的定義整體稱為某某置標(biāo)語言,而把用這種置標(biāo)語言編寫的文字段落,稱為某某語言文檔。如果我們把上面定義的那套標(biāo)記叫做"文章置標(biāo)語言"的話,那么下面那段置標(biāo)語言,就可稱為"文章置標(biāo)語言文檔"。
----------------------
什么是SGML?
----------------------
從字面上看,SGML(Standard Generalized Markup Language--標(biāo)準(zhǔn)的通用置標(biāo)語言)是一種置標(biāo)語言,實際上它是一種通用的文檔結(jié)構(gòu)描述置標(biāo)語言,主要用來定義文獻模型的邏輯和物理類結(jié)構(gòu)。SGML是ISO組織于1986年發(fā)布的ISO 8879國際標(biāo)準(zhǔn)。
一個SGML語言程序,要由三部分組成,即語法定義、文件類型定義(簡稱DTD--Definition Type Document)和文件實例。語法定義,定義了文件類型定義和文件實例的語法結(jié)構(gòu);文件類型定義,定義了文件實例的結(jié)構(gòu)和組成結(jié)構(gòu)的元素類型。文件實例是SGML語言程序的主體部分。
SGML的實際使用中,每一個特定的DTD都定義了一類文件。例如,所有的新聞稿件都可以使用同一個DTD。因此,人們習(xí)慣上把具有某一特定DTD的SGML語言,稱為某某置標(biāo)語言。例如用于國際互聯(lián)網(wǎng)的HTML語言。這樣SGML就成為那些派生語言的元語言。
----------------------
什么是XML?
----------------------
XML是eXtensible Markup Language(可擴展的置標(biāo)語言)的縮寫,是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采取了簡化SGML的策略,在SGML基礎(chǔ)上,去掉語法定義部分,適當(dāng)簡化DTD部分,并增加了部分互聯(lián)網(wǎng)的特殊成分。因此,XML也是一種置標(biāo)語言,基本上是SGML的一個子集。因為XML也有DTD,所以XML也可以作為派生其它置標(biāo)語言的元語言。
----------------------
什么是HTML?
----------------------
HTML是Hypertext Markup Language(超文本置標(biāo)語言)的縮寫,是SGML的一個實例,是W3C組織發(fā)布的標(biāo)準(zhǔn),是專門為在互聯(lián)網(wǎng)上發(fā)布信息而設(shè)計的置標(biāo)語言。
----------------------
XML、SGML、HTML之間是什么關(guān)系?
----------------------
HTML是SGML的一個實例,它的DTD作為標(biāo)準(zhǔn)被固定下來,因此,HTML不能作為定義其它置標(biāo)語言的元語言。XML是SGML的一個子集,嚴(yán)格地講,XML也還是SGML。與HTML不同的是,XML有DTD,因而也可以象SGML那樣,作為元語言,來定義其它文件系統(tǒng),或稱其它置標(biāo)語言。如果把置標(biāo)語言分為元置標(biāo)語言和實例置標(biāo)語言的話,SGML和XML都是元置標(biāo)語言,而HTML和由XML派生的XHTML都是實例置標(biāo)語言。
----------------------
XML的用途是什么?
----------------------
在國際互聯(lián)網(wǎng)上,服務(wù)器與服務(wù)器之間、服務(wù)器與瀏覽器之間有大量的數(shù)據(jù)需要交換,特別是在電子商務(wù)中。這些被交換的數(shù)據(jù),都被要求對數(shù)據(jù)的內(nèi)容和表現(xiàn)方式有所說明,用置標(biāo)語言擔(dān)當(dāng)這個重任是再合適不過了。應(yīng)該說SGML完全可以扮演這個國際互聯(lián)網(wǎng)上數(shù)據(jù)交換標(biāo)準(zhǔn)語言的角色,然而由于SGML對互聯(lián)網(wǎng)應(yīng)用來講太復(fù)雜了,因而需要一種即能象SGML那樣作為元語言使用,又能比較簡單地進行處理的置標(biāo)語言,來擔(dān)此重任。在這種背景下XML就應(yīng)運而生了。因此在互聯(lián)網(wǎng)世界XML的用途主要有兩個,一是作為元置標(biāo)語言,定義各種實例置標(biāo)語言標(biāo)準(zhǔn);二是作為標(biāo)準(zhǔn)交換語言,擔(dān)負(fù)起描述交換數(shù)據(jù)的作用。
----------------------
HTML已經(jīng)這樣流行了,為什么還要發(fā)展XML?
----------------------
簡單地講,HTML不能完成,我們希望XML所要完成的任務(wù)。原因很簡單,XML所要完成的任務(wù),必須由元置標(biāo)語言來完成,而HTML只是一個實例置標(biāo)語言。 在XML發(fā)布之前,國際互聯(lián)網(wǎng)的發(fā)展受到HTML如下幾個問題的束縛:
1) HTML無法描述數(shù)據(jù)內(nèi)容,而這一點恰恰是數(shù)據(jù)檢索、電子商務(wù)所必須的。
2) HTML對數(shù)據(jù)表現(xiàn)的描述能力是十分不夠的,如HTML還不能描述矢量圖形、 科學(xué)符號等對象,目前只能通過圖象來表現(xiàn)這些對象。
3) HTML實例置標(biāo)語言的地位,完全不能適應(yīng)對新標(biāo)記需求的發(fā)展需要。
XML的出現(xiàn),使上述問題都得到很好的解決。
----------------------
XML怎樣簡化SGML?
----------------------
為簡單化SGML,XML重新定義了一些SGML的內(nèi)部值和參數(shù),并刪去了大量繁雜的、不常用的、使編程復(fù)雜的特征(見http://www.w3.org/TR/NOTE-sgml-xml-971215)。
----------------------
用XML你能定義自己的文件類型(DTD)嗎?
----------------------
回答是肯定的。這也是XML與HTML區(qū)別最大的地方。
----------------------
誰對XML負(fù)責(zé)?
----------------------
XML是W3C組織的一個項目,XML規(guī)格說明書是W3C組織的XML工作組制定的,這個工作組由各領(lǐng)域、公司的專家和協(xié)作者組成,并通過E_mail方式交換信息,進行修改和完善。XML是集體智慧的結(jié)晶,不是某個公司的專利。 1.0版規(guī)格說明書由W3C認(rèn)可,并在1998年2月10日正式推薦使用。
----------------------
為什么XML如此重要?
----------------------
試想在互聯(lián)網(wǎng)世界,如果大家都講方言,互相交換信息時都要進行翻譯,那將是一個多么難以溝通和交流的世界。在互聯(lián)網(wǎng)世界,XML之所以重要,恰恰是由于它扮演了"國際語言"角色的緣故。此外,XML更為互聯(lián)網(wǎng)世界提供了定義各行各業(yè)的"專業(yè)術(shù)語"的工具。
----------------------
什么是文檔類型定義(DTD)?
----------------------
文檔類型定義 (DTD) 是一套關(guān)于標(biāo)記符的語法規(guī)則。 它告訴你可以在文檔中使用哪些標(biāo)記符, 它們應(yīng)該按什么次序出現(xiàn), 哪些標(biāo)記符可以出現(xiàn)于其它標(biāo)記符中, 哪些標(biāo)記符有屬性, 等等. DTD原來是為使用SGML開發(fā)的, 它可以是XML文檔的一部分, 但是它通常是一份單獨的文檔或者一系列文檔 。XML本身并沒有一個通用的DTD,想使用XML進行數(shù)據(jù)交換的行業(yè)或組織可以定義它們自己的DTD。
----------------------
如何在瀏覽器中閱讀XML?
----------------------
閱讀XML文檔的工具一般稱為XML解析器, 也稱為XML處理器。 XML處理器將數(shù)據(jù)傳送到應(yīng)用軟件, 以便處理, 出版, 查詢, 或顯示。XML不給應(yīng)用軟件提供 應(yīng)用程序接口 (API), 它只是把數(shù)據(jù)傳給應(yīng)用軟件. XML處理器不解析非構(gòu)造良好的數(shù)據(jù)。 Netscape 和 Microsoft 都已經(jīng)將XML解析器包含在其瀏覽器中。 XML開發(fā)者團體提供免費的XML閱讀器和解析器, 以便在應(yīng)用軟件或XML制作軟件中進行應(yīng)用。
----------------------
使用問題
如何得到XML瀏覽器?
----------------------
XML標(biāo)準(zhǔn)已經(jīng)發(fā)布規(guī)格說明書新出臺不久,所以現(xiàn)在很多都是在試驗階段的軟件。而處理HTML的瀏覽器有許多。但是將來會涌現(xiàn)大量不同領(lǐng)域的XML應(yīng)用程序,所以不要指望會有一個瀏覽器能100%的處理好所有的程序。
XML的工具(如解釋器(parsing),樹結(jié)構(gòu)管理(tree management),搜索(searching),格式化工具(formatting)等等)都被加在瀏覽器的庫(libraries)里或工具包(toolkit)中,幫助開發(fā)人員更容易編寫XML程序。這種應(yīng)用程序可以通過增加相應(yīng)的語義來修改,使之適用于 另一個特殊領(lǐng)域,或使用Java等語言為瀏覽器開發(fā)plugins等嵌入程序,在Web上傳輸某一模塊。
Microsoft公司的IE4和5瀏覽器可以處理一些Microsoft-oriented的XML程序,但顯示時要轉(zhuǎn)換為HTML文件。 詳情見development work at Microsoft和how to enable it。 Arbortext的XML Stylesheet program頁中介紹怎樣使用XML+XSL。你也需要ActiveX controls和XSL codebase。 Microsoft建議你可以在HTML文件中加入XML段,因為現(xiàn)在的只支持HTML的瀏覽器會忽略不認(rèn)識的標(biāo)識元素。
可以下載的Netscape(Mozilla)瀏覽器已經(jīng)通過一個XML+RDF測試,其中使用James Clark的expatXML解釋器(parser)。
請看面向程序設(shè)計人員和軟件和工具開發(fā)商中軟件部分的注意說明(notes),更詳細(xì)的資料列在 http://www.oasis-pen.org/cover/xml.html。
----------------------
為什么要使用XML而不是HTML?
----------------------
比較重要的原因有以下六條:
?。保┳髡吆凸?yīng)商能使用XML設(shè)計自己的文檔類型,不必被HTML所約束。
2)由于XML的超文本鏈接能力比HTML強得多,XML提供的信息內(nèi)容比 HTML更豐富,也更易于使用。
?。常ML能提供更多更好的機制方便瀏覽器的信息表現(xiàn)和優(yōu)化性能。
?。矗ML舍棄了SGML的復(fù)雜性,因此編寫處理XML的應(yīng)用程序會很容易。
?。担┬畔⒁子诖鎯?,可重復(fù)使用。
6)XML文件在SGML環(huán)境中也可使用,不一定要局限于在WEB中使用。
----------------------
必須從SGML或HTML轉(zhuǎn)向XML嗎?
----------------------
沒有必要。現(xiàn)有的SGML和HTML應(yīng)用軟件將會繼續(xù)和現(xiàn)有文件一起工作。但是如果你想查看或下載使用XML文件,你就需要使用能夠理解、處理XML的程序。
----------------------
可以用Java創(chuàng)建和管理XML文件嗎?
----------------------
是的,任何程序設(shè)計語言都能被用來從XML形式的源文檔中輸出數(shù)據(jù)。已經(jīng)出現(xiàn)了許多的前端和后臺工具使得程序設(shè)計和數(shù)據(jù)管理更加方便。下面兩個網(wǎng)址有更加詳細(xì)的說明: http://developerlife.com >http://www.markwatson.com/XMLdb_0_1.htm http://developerlife.com
----------------------
開發(fā)問題
XML的規(guī)格說明書在哪里?
----------------------
從http://www.w3.org/TR/REC-xml中就可以找到。
----------------------
“DTDless”、“valid”和“well-formed”等術(shù)語的含意是什么?
----------------------
在標(biāo)準(zhǔn)SGML文檔中,所有用到的標(biāo)記、元素、元素的屬性都必須由文件類型定義(DTD)來說明。但是這種限制在XML的應(yīng)用中并不是總是需要的,所以XML文檔被設(shè)計成既可以帶有DTD,也可以沒有DTD文件。DTDless的意思是沒有DTD的XML文件,你可以創(chuàng)建自己的標(biāo)識和元素,但不用在DTD中正式定義。DTDless文件通過創(chuàng)建元素時對它們直接進行定義。但是當(dāng)XML應(yīng)用程序,如一個瀏覽器遇到DTDless文件時,因為沒有DTD文件告訴瀏覽器關(guān)于這個文件的結(jié)構(gòu)信息,所以創(chuàng)建DTDless文檔時,仍需要一些規(guī)則來進行規(guī)范。這樣“well_formed”XML文檔的概念就相應(yīng)產(chǎn)生了,它明確規(guī)定了書寫XML文檔的語法規(guī)范。所有符合這個規(guī)范的XML文檔就被稱為是“well_formed”的XML文檔。如果一個“well_formed”的XML文檔,包含了DTD說明,那么這個文檔就被稱為是一個“valid”的XML文檔了。
----------------------
為什么XML文件的分析結(jié)果出現(xiàn)亂碼?
----------------------
這是由編碼問題引起的。XML標(biāo)準(zhǔn)規(guī)定,XML分析器必須支持“UTF-8”和“UTF-16”編碼,而且必須能夠自動區(qū)分這兩種編碼的文件,對于其他編碼(包括常用的中文編碼“GB2312”或“BIG5”)并不要求支持。如果XML文件中包含編碼聲明,分析器則按照聲明的編碼進行處理,否則就按照識別結(jié)果進行處理(識別的結(jié)果總是“UTF-8”和“UTF-16”中的一種)。因此,如果XML文件的編碼在這兩種之外,你必須在XML文件前加上編碼聲明,如:?xml version="1.0" encoding="gb2312"?>就表示XML文件的編碼是“gb2312”。
現(xiàn)有的XML分析器大多不支持中文編碼“GB2312”或“BIG5”,因此無法讀取包含中文的XML文件。你可以使用支持中文編碼的分析器,如MSXML,IBMJAVA4C,IBMJAVA4J等進行XML分析。你也可以用內(nèi)碼轉(zhuǎn)換工具,將編碼轉(zhuǎn)換為“UTF-8”或“UTF-16”后進行解析,然后將解析結(jié)果轉(zhuǎn)換回原來的編碼。本站的軟件園地中的ccnv(Code Converter)就是這樣的工具。當(dāng)然,你也可以自己寫一個內(nèi)碼轉(zhuǎn)換程序。
關(guān)于“UTF-8”和“UTF-16”編碼的詳細(xì)信息,請查看本站標(biāo)準(zhǔn)薈萃中的UTF-16和UTF-8標(biāo)準(zhǔn)。
----------------------
XML如何與數(shù)據(jù)庫連接?
----------------------
XML是一種文件格式,它沒有規(guī)定與數(shù)據(jù)庫的連接方法,你需要用傳統(tǒng)的方法連接數(shù)據(jù)庫,進行數(shù)據(jù)庫查詢,然后將查詢結(jié)果轉(zhuǎn)化為XML格式?,F(xiàn)在有一些工具提供了XML與數(shù)據(jù)庫的連接過程大都遵循這樣的步驟。下面是一個利用ASP直接生成XML文件的例子,你可以訪問http://www.xml.net.cn/Asps/test/roster1.asp查看執(zhí)行效果。
標(biāo)簽:拉薩 寧夏 西雙版納 黃石 益陽 德州 宿遷 果洛
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XML入門問答》,本文關(guān)鍵詞 XML,入門,問答,XML,入門,問答,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。