程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 簡析XML及其在Delphi中的應用

簡析XML及其在Delphi中的應用

編輯:Delphi

摘要:隨著信息化社會的發展和不同系統間數據交換的要求,XML將成為不同系統間數據交換的標准和傳輸格式。本文結合實例介紹了如何在Delphi中應用XML進行編程的技術。

關鍵字:可擴展標記語言,Delphi, Web Service, InternetExpress.

1. XML及其背景

XML即Extensible Markup Language(可擴展標記語言)的縮寫[1]。XML是Web上表示結構化信息的一種標准文本格。XML同HTML一樣,都來自SGML(標准通用標記語言)。XML與SGML相比,簡單易懂,是一門既無標簽集也無語法的新一代標記語言。XML具有以下的先進特性:

1.1 簡單性

XML為程序員和文檔作者提供了一個友好的環境。XML的嚴格定義和規則集使得人類和機器都能很容易地閱讀文檔。XML文檔語法包含一個非常小的規則集,使開發者能立刻開始工作。

1.2 可擴展性

XML在兩個意義上是可擴展的。首先,它允許開發者創建他們自己的DTD,有效地創建可被用於多種應用的"可擴展的"標志集;其次,使用幾個附加的標准,可以對XML進行擴展,這些附加標准可以向核心的XML功能集增加樣式、鏈接和參照能力。

1.3 開放性

XML標准在Internet上是完全開放的。XML文檔自身也較為開放,任何人都可以對一個結構良好的XML文檔進行語法分析,如果提供了DTD,還可以校驗這個文檔。開放性是它最大的優點之一。

此外,XML還有互操作性和自描述性。XML可以在多種平台上使用,可以用多種工具進行解釋;XML支持用於字符編碼的許多主要標准。自描述性表現在XML文檔通常包含一個文檔類型聲明,不僅人能讀懂XML文檔,計算機也能處理。XML文檔被看作是文檔的數據庫化和數據的文檔化。

2. DELPHI及其對XML的支持

Delphi提供可視化的開發環境;最新版本的Delphi更深入、更全面地強化了"支持COM,DCOM,COM+,多級分層體系結構的DataSnap,Soap/Web Service,網絡編程"等諸多功能,還對XML/XSL技術及開發基於NET框架應用程序提供了強大支持。

XML已經成為正式的規范,開發人員能夠用XML的格式標記和交換數據。XML在三層架構上為數據處理提供了很好的方法。使用可升級的三層模型,XML可以從現有的數據中產生出來,使用XML結構化的數據可以從商業規范和表現形式中分離出來。 XML可看作一種半結構化的數據模型,可以很容易地將XML的文檔描述與關系數據庫中的屬性一一對應起來,實施精確地查詢與模型抽取。

Delphi 7 Studio更是新增了十幾項XML功能讓用戶更靈活,更方便的編寫基於XML的應用程序。其對XML的支持主要體現在以下幾個方面:

2.1在數據庫應用程序中使用XML技術

XML文檔提供了Web應用程序和電子商務通信中標准的數據傳輸格式。Delphi支持使用XML文檔來創建數據庫應用程序。使用Delphi提供的組件可以在數據包(Data)和XML文檔之間輕易地轉換,使得使用XML文檔就象使用數據庫一樣方便。在這個過程中要用到XML文檔、XML影射工具(XML Mapper)及其轉換文件。三者之間的關系如圖1所示.

圖1. XML文檔、XML影射工具及其轉換文件之間的關系

2.2 InternetExpress技術

InternetExpress是Delphi在Web上實現多層應用的方法,它允許程序員真正地使用業界標准來開發分布式Web或者電子商務系統。它提供了程序員以可視化方式開發以XML封裝數據的Web應用程序,即可見即所得的方式輕易地設計浏覽器中顯示的數據及圖形用戶界面。其工作原理如圖2:

圖2. 使用Internet Express 技術建立Web應用系統的結構圖

2.3 WebBroker技術。

Delphi提供了很多Internet組件,讓開發者開發以XML/HTML為主的Web應用程序,這些技術的核心是WebBroker技術。WebBroker的基本應用結構如圖3所示:

圖3. WebBroker應用結構

2.4 WebSnap技術

Delphi為了讓開發者更方便的開發Internet/Intranet應用系統的新架構和組件,新增加了一個功能WebSnap。WebSnap在WebBroker的基礎上,增加了新的組件、應用向導和視圖,使得開發Web應用更容易,效率更高。

2.5 輕便的 XML 個人數據庫引擎 MyBase

Delphi6 內建 MyBase 個人用途XML數據庫引擎 ,提供在內存中高效能數據表格 、具彈性的XML數據交換格式 ,以及簡易的安裝管理。

另外,BizSnap Web Services RAD開發平台通過輕松創建XML/ SOAP Web Services和連接,簡化了B2B的集成過程。BizSnap 相關組件與工具可以輕松轉換現有企業信息成為 XML 文件 ,讓您的企業在 B2B 的潮流中完全不受限制與拘束 。BizSnap 讓 Delphi 能夠藉由標准的SOAP/XML Web Service 與 Microsoft .NET 、Microsoft BizTalk 以及 Sun Microsystems ONE 等應用服務相整合 。

3. 應用實例

下面結合一個具體的實例說明如何在Delphi中編寫XML應用程序。該實例是在WebBroker應用程序中運用XML/XSLT進行編程,使用WebBroker Extensions組件。

3.1 首先安裝WebBroker Extensions組件。可以使用Delphi自帶的安裝程序進行安裝,或者打開Delphi在Component->Install Component進行安裝。安裝後,選擇New->Others,在彈出的對話框中將出現XML一項,單擊XML標簽,在下面的對話框中有"XSLT WebServer Application"項。

3.2 然後選擇"XSLT WebServer Application",單擊"OK",會出現一個和創建WebBroker應用程序相似的界面。接受默認設置,工程向導將創建一個XSLWebModule模塊。

3.3下面添加Actions屬性。選定Webmodule,然後為其增加一個XSLActions,可使用Property Editor或選擇樹結構中的XSLActions結點,然後按右鍵選擇Add菜單項。

3.4 設置XSLActions Item屬性,將XML Template 及XSL StyleSheet的屬性分別設置為:cars.xml 和cars.xslt。其中cars.xml(表1.)、 cars.xslt(表2.)的內容如下(為了簡潔只定義基本框架)。根據表2(cars.xslt)的定義可以看到輸出的cars.html格式為表格。

3.5 保存項目工程為prjDemo,編譯後,然後運行在Web服務器上如:http://MyWebserver.com.輸入的網址為:/ISAPI/prjDemo.dll/.

圖4. 程序運行的基本邏輯流程

3.6當應用程序響應一個Request,Webmodule將裝載XML Template文件cars.xml。隨後響應OnAction事件,webmodule將把指定的XSLT StyleSheet文件裝載,並和XML Template文件一起傳送給Transform Processor。Processor把處理的結果作為響應返回到客戶端(Client)。基本流程如圖4所示:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="D:\TEMP\cars.xslt"?>
<cars>
 <type>Cars</type>
 <car>
  <name>Commodore</name>
  <price>26,000</price>
 </car>
 ……
</cars>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<HTML>
<HEAD>
 <TITLE> <xsl:value-of select="cars/type"/> </TITLE>
</HEAD>
<BODY>
 <TABLE border="1">
  <TR>
   <TD>Name</TD>
   <TD>Price</TD>
  </TR>
  <xsl:for-each select="cars/car">
  <TR>
   <TD>
    <xsl:value-of select="name"/>
   </TD>
   <TD>
    <xsl:value-of select="price"/>
   </TD>
  </TR>
  </xsl:for-each>
 </TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

4.結束語

本文對XML及其如何在Delphi中實現 XML編程技術進行介紹,並在具體的實例中結合Delphi中的組件技術,使用第三方控件實現XML編程。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved