|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2003-05-29, 02:09 PM | #1 (permalink) |
榮譽會員
|
XML傳統問答
一.HTML已經這樣流行了,為什麼還要發展XML?
簡單地講,HTML不能完成,我們希望XML所要完成的任務。原因很簡單,XML所要完成的任務,必須由元置標語言來完成,而HTML只是一個實例置標語言。 在XML發佈之前,國際網際網路的發展受到HTML如下幾個問題的束縛: 1) HTML無法描述資料內容,而這一點恰恰是資料檢索、電子商務所必須的。 2) HTML對資料表現的描述能力是十分不夠的,如HTML還不能描述矢量圖形、 科學符號等對象,目前只能通過圖像來表現這些對象。 3) HTML實例置標語言的地位,完全不能適應對新標記需求的發展需要。 XML的出現,使上述問題都得到很好的解決。 試想在網際網路世界,如果大家都講方言,互相交換信息時都要進行翻譯,那將是一個多麼難以溝通和交流的世界。在網際網路世界,XML之所以重要,恰恰是由於它扮演了"國際語言"角色的緣故。此外,XML更為網際網路世界提供了定義各行各業的"專業術語"的工具。 二.如何在瀏覽器中閱讀XML? 閱讀XML我的文件的工具一般稱為XML解析器, 也稱為XML處理器。 XML處理器將資料傳送到應用軟體, 以便處理, 出版, 查詢, 或顯示。XML不給應用軟體提供 應用程式接頭 (API), 它只是把資料傳給應用軟體. XML處理器不解析非構造良好的資料。 Netscape 和 Microsoft 都已經將XML解析器包含在其瀏覽器中。 XML開發者團體提供免費的XML閱讀器和解析器, 以便在應用軟體或XML製作軟體中進行套用。 三.為什麼要使用XML而不是HTML? 比較重要的原因有以下六條: 1)作者和供應商能使用XML設計自己的我的文件類型,不必被HTML所約束。 2)由於XML的超文本連接能力比HTML強得多,XML提供的信息內容比 HTML更豐富,也更易於使用。 3)XML能提供更多更好的機制方便瀏覽器的信息表現和優化性能。 4)XML捨棄了SGML的複雜性,因此編寫處理XML的應用程式會很容易。 5)信息易於存儲,可重複使用。 6)XML文件在SGML環境中也可使用,不一定要局限於在WEB中使用。 四.可以用Java新增和管理XML文件嗎? 是的,任何程序設計語言都能被用來從XML形式的源我的文件中輸出資料。已經出現了許多的前端和後台工具使得程序設計和資料管理更加方便。下面兩個網址有更加詳細的說明: http://www.markwatson.com/XMLdb_0_1.htm http://developerlife.com 五.為什麼XML文件的分析結果出現亂碼? 這是由編碼問題引起的。XML標準規定,XML分析器必須支持「UTF-8」和「UTF-16」編碼,而且必須能夠自動區分這兩種編碼的文件,對於其他編碼(包括常用的中文編碼「GB2312」或「BIG5」)並不要求支持。如果XML文件中包含編碼聲明,分析器則按照聲明的編碼進行處理,否則就按照識別結果進行處理(識別的結果總是「UTF-8」和「UTF-16」中的一種)。因此,如果XML文件的編碼在這兩種之外,你必須在XML文件前加上編碼聲明,如:<?xml version="1.0" encoding="gb2312"?>就表示XML文件的編碼是「gb2312」。 現有的XML分析器大多不支持中文編碼「GB2312」或「BIG5」,因此無法讀取包含中文的XML文件。你可以使用支持中文編碼的分析器,如MSXML,IBMJAVA4C,IBMJAVA4J等進行XML分析。你也可以用內碼轉換工具,將編碼轉換為「UTF-8」或「UTF-16」後進行解析,然後將解析結果轉換回原來的編碼。本站的軟體園地中的ccnv(Code Converter)就是這樣的工具。當然,你也可以自己寫一個內碼轉換程序。 關於「UTF-8」和「UTF-16」編碼的詳細資料,請檢視本站標準薈萃中的UTF-16和UTF-8標準。 六.XML如何與資料庫連接? XML是一種文件格式,它沒有規定與資料庫的連接方法,你需要用傳統的方法連接資料庫,進行資料庫查詢,然後將查詢結果轉化為XML格式。現在有一些工具提供了XML與資料庫的連接程序大都遵循這樣的步驟。下面是一個利用ASP直接產生XML文件的例子,你可以訪問http://www.xml.net.cn/Asps/test/roster1.asp檢視執行效果。 <@ language="VBScript" > <?xml version="1.0" encoding="gb2312"?> <?xml:stylesheet type="text/xsl" href="..image oster.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> 0A<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 cCon |
送花文章: 3,
|