XML 和XSLT結合使你的網站設計渾然一體_Xml教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:XML入門指南(1)XML簡介
      XML可以用來描述數據,重點是‘數據是什么’。   HTML則是用來顯示數據,重點是‘如何顯示數據’。   在學習XML之前你應該已經知道的知識   在你繼續(xù)之前你應

      如果你還未考慮采用一種單一的、緊密結合的方式進行網頁設計的話,請看本文。

      在網絡發(fā)展初期,凝聚性(cohesiveness)是由服務器端實現(xiàn)的,但要牽涉到大量的人工文件管理工作。幸運的是,隨著網絡的日益成熟,網絡開發(fā)工具也日臻完善。例如,在.NET框架下,你可以創(chuàng)建各種Web控件來統(tǒng)一設計。

      XML和XSLT的轉換使Web設計受益無窮。借助XML和 XSLT轉換,你可以實現(xiàn)將動態(tài)用語(dynamic verbiage)和網站內容存儲在數據庫中。你可以在XML中傳輸數據庫,然后再通過XSLT轉換將其轉變?yōu)镠TML腳本。本文中,我將提供一個網站實例,并說明XML 和XSLT如何使你的網站設計渾然一體。

      在設計用戶/數據交互功能時,我最為關心的是數據的完整性、用戶界面的功能性和商務規(guī)則的完善實現(xiàn)。我最不關心的是按鈕的顏色。而這些細枝末節(jié)卻往往是程序員發(fā)揮技術的地方。

      當設計一個全新的頁面時,我只投入最低限度的精力用于用戶界面的設計,如只安置一個文本框和一個提交按鈕。對于本例中的HTML網頁,我增加了兩個INPUT標簽來完成這一任務。

      以下為引用的內容:
      <html>
      <head>
      </head>
      <body>
      <form method="POST" name="thisForm" id="thisForm" action="somepage.php">
      <input type="text" name="txtText" id="txtText" size="25"><br>
      <input type="submit" name="btnSubmit" id="btnSubmit" value="Submit">
      </form>
      </body>
      </html>

      以上代碼段完成了主要功能,但還需用XML和XSLT來對其加以美化。

      在XML中,代碼有開頭和結尾標簽,而在HTML中沒有。INPUT 和BR標簽是個特例,它們不需結尾標簽。然而,在結尾標簽標記“>”前加一個正斜杠,可確保HTML符合XML規(guī)范。如果在編寫HTML腳本時注意遵從這些規(guī)范,你就能夠將XML/HTML(aka XHTML)轉換為不錯的HTML頁面。

      以下為引用的內容:
      <form method="POST" name="thisForm" id="thisForm" action="somepage.php">
      <input type="text" name="txtText" id="txtText" size="25" transform="blueText"/>
      <br/>
      <input type="submit" name="btnSubmit" id="btnSubmit" value="Submit"
      transform="bigButton"/>
      </form>

      運行下列代碼,完成XSLT轉換:

      以下為引用的內容:

      <?xml version="1.0"?>
      <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
      >
      <xsl:output method="html"/>

      <xsl:template match="/">
      <table width="100%" cellpadding="0" cellspacing="0">
      <tr><td align="center">This is the defined header</td></tr>
      <tr><td><xsl:apply-templates select="//form"/></td></tr>
      <tr><td align="center">This is the defined footer</td></tr>
      </table>
      </xsl:template>

      <xsl:template match="form">
      <xsl:element name="form">
      <xsl:attribute name="method"><xsl:value-of
      select="@method"/></xsl:attribute>
      <xsl:attribute name="action"><xsl:value-of
      select="@action"/></xsl:attribute>
      <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
      <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
      <xsl:apply-templates select="*"/>
      </xsl:element>
      </xsl:template>
      <xsl:template match="*">
      <xsl:choose>
      <xsl:when test="@transform='blueText'"><xsl:element name="input">
      <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
      <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
      <xsl:attribute name="type">text</xsl:attribute>
      <xsl:attribute name="style">color:blue</xsl:attribute>
      <xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of
      select="@value"/></xsl:attribute></xsl:if>
      </xsl:element>
      </xsl:when>
      <xsl:when test="@transform='redText'"><xsl:element name="input">
      <xsl:attribute name="name"><xsl:value-of
      select="@name"/></xsl:attribute>
      <xsl:attribute name="id"><xsl:value-of
      select="@id"/></xsl:attribute>
      <xsl:attribute name="type">text</xsl:attribute>
      <xsl:attribute name="style">color:red</xsl:attribute>
      <xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of
      select="@value"/></xsl:attribute></xsl:if>

      </xsl:element>
      </xsl:when>
      <xsl:when test="@transform='bigButton'"><xsl:element name="input">
      <xsl:attribute name="name"><xsl:value-of
      select="@name"/></xsl:attribute>
      <xsl:attribute name="id"><xsl:value-of
      select="@id"/></xsl:attribute>
      <xsl:attribute name="style">height:30px;width:100px;font-
      size:18pt;font-weight:700;</xsl:attribute>
      <xsl:attribute name="value"><xsl:value-of
      select="@value"/></xsl:attribute>
      </xsl:element>
      </xsl:when>
      </xsl:choose>
      </xsl:template>
      </xsl:stylesheet>

      以上代碼無法為你實現(xiàn)創(chuàng)建命名空間、定義XML標簽、確認DTD或schema。它使你能夠創(chuàng)建可行的HTML腳本,并可轉化為完整的新頁面,無需擔心設計因素。

      在樣式表中,我用HTML標簽的轉換屬性驅動轉換操作。我曾考慮用一個FORM窗體作為定義轉換操作所需的用戶控件的單元,因為所有用于用戶輸入的控件都應在一個FORM中。本例中,輸出為一個文本INPUT,文本顏色為藍色;一個高20像素、寬100像素的按鈕,字體為18點加粗。我可以通過修改轉換屬性來改變文本框中的文本顏色。

      有多種方法可將靜態(tài)內容添加到網頁中,但出于演示目的,我只采用最簡單的方式,即在樣式表中增加header和footer。

      現(xiàn)在,當我要創(chuàng)建一個新窗體用于用戶輸入時,我要做的只是創(chuàng)建一個一般窗體。一旦一般窗體通過測試,我就可以將這些窗體添加到轉換中生成主題的HTML輸出。你只要記住輸入控件類型,并注意把它添加為轉換屬性即可。

      達到目的的方法有很多種,通過這個例子,我希望能幫助你們學會如何標準化HTML輸出。

      分享:XML數據庫中幾個容易混淆的概念
      一個原始的XML數據庫(NXD)可以是很簡單,也可以是很復雜。我這樣定義一個數據庫的概念:永久穩(wěn)定數據的集合。在這樣的定義下,一個NXD能在邏輯上存儲一個XML文檔。   當開發(fā)人

      來源:模板無憂//所屬分類:Xml教程/更新時間:2008-08-22
      相關Xml教程