XML Spy執行個體教程
在讀這篇教程之前,你至少應當確認自己對XML相當熟知,使用記事本或其他工具編輯過XML、DTD以及XSLT文檔,並且熟悉它們的文法及用途,否則請先補過課之後再來閱讀本教程。
XML Spy是Icon Information System開發的支援XML,XSL,XSLT,DTD,Schema等等多種檔案格式的編輯器。它可以將XML展示為完美的樹型結構,可以方便的使用各種HTML/XML/XSLT標記,使用它可以大大節約我們的開發時間,不必把大量的時間浪費在代碼的輸入上。下面我們通過一個儲存電影資訊的執行個體來學習一下XML Spy的使用方法。
第一步:我們要設計三個檔案:saveit.xml,saveit.dtd和saveit.xslt;saveit.xml負責儲存具體電影內容資料,saveit.dtd負責對saveit.xml的驗證,而saveit.xslt則負責對saveit.xml進行樣式變換,確定它在瀏覽器裡的最終顯示效果。先來看看我們需要建立的三個檔案的代碼:
----------saveit.xml------------------
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE movies SYSTEM "G:////xmlspy////saveit.dtd">
<?xml-stylesheet type="text/xsl" href="G:////xmlspy////saveit.xslt"?>
<movies type="動作片">
<id>1</id>
<name>致命搖籃</name>
<brief>李連杰最新力作!</brief>
<time>2003</time>
</movies>
----------saveit.dtd------------------
<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT movies (id, name, brief, time)>
<!ATTLIST movies type CDATA #REQUIRED>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT brief (#PCDATA)>
<!ELEMENT time (#PCDATA)>
----------saveit.xslt------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="GB2312" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>
:::淩雲的XML Spy教程:::
</title>
</head>
<body>
<xsl:apply-templates></xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="movies">
第<xsl:value-of select="id"></xsl:value-of>部電影
<table>
<tbody>
<tr>
<td>名稱</td>
<td>簡介</td>
<td>時間</td>
<td>類型</td>
</tr>
<tr>
<td><xsl:value-of select="name"></xsl:value-of></td>
<td><xsl:value-of select="brief"></xsl:value-of></td>
<td><xsl:value-of select="time"></xsl:value-of></td>
<td><xsl:value-of select="@type"></xsl:value-of></td>
</tr>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>
第二步: 使用XML Spy建立saveit.dtd文檔。
1)建立根結點movies
選擇菜單File->New彈出Create new document 對話方塊,選擇裡面的dtd(Document Tpye Definition),這樣一個空的DTD文檔就會被建立在編輯區,1所示。點擊左上方的黑三角會變成圖2所示的樣子。我們將編碼方式項enconding預設值為UTF-8,我們將其改為GB2312.在Elm處雙擊,輸入movies.完成後3所示。保持Elm movies的選中狀態,雙擊右側Elements框裡的sequence of,結果4所示。這樣根結點movies就建立完畢了。
圖1
圖2
圖3
圖4
2)為根結點movies添加子節點id,name,brief,time及屬性type.
在movies sequence of上點右鍵,選擇Add child->ELEMENT,為其增加四個子節點。5所示。再次在movies sequence of上點右鍵,選擇Append->ATTLIST,然後6所示進行設定其名稱為movies,設定Name為type,設定Type為CDATA,設定Presence為#REQUIRED.
圖5
圖6
3)建立子節點id,name,brief,time. 在movies sequence of上點右鍵,選擇Append->ELEMENT,增加四個節點,資料類型全部設為PCDATA.7所示。這樣DTD文檔就建立好了。命名為saveit.dtd儲存到G:////xmlspy目錄下。在View->Text view方式下可以查看編輯所得到的原始碼,選擇View->Enhanced Grid view會回到樹型編輯檢視方式。
第三步: 使用XML Spy建立saveit.xslt文檔。
1)選擇菜單File->New彈出Create new document 對話方塊,選擇裡面最後一項xslt(Extensible Stylesheet Language)項,建立的新xslt檔案8所示。此時XML Spy會將視圖自動轉到代碼編輯檢視下,因為直接編輯xslt更為方便一些。將其編碼方式改為:GB2312,9所示。
圖8
圖9
2)其餘的代碼可以通過圖10所示的Elements面板方便的添加到編輯區中。添加完畢,設定相應的節點為各元素的屬性值即可完成XSLT文檔的編寫,具體過程不再細說。完成後11所示。命名為saveit.xslt儲存到G:////xmlspy目錄下。
圖10
圖11
第四步: 使用XML Spy建立saveit.xml文檔。
1)選擇菜單File->New彈出Create new document 對話方塊,選擇裡面的xml(XML Document),此時會彈出一個對話方塊,要求選擇XML文檔的驗證方式是DTD還是Schema,12所示,我們選擇DTD驗證方式,並且選擇剛剛建立的saveit.dtd作為其驗證文檔,13所示。
圖12
圖13
2)點擊OK後XML Spy就會為我們自動建好符合saveit.dtd驗證的XML空白文檔。14所示。填入內容資料。將編碼方式項enconding更改為GB2312.結果15所示。
圖14
圖15
3) 選擇XSL->Assign XSL菜單,並在快顯視窗(15所示)中選擇G:////xmlspy////saveit.xslt檔案,點擊OK.
圖16
4)大功告成,XML文檔終於編輯完畢。17所示。命名為saveit.xml,存檔到G:////xmlspy目錄下。
圖17
第五步:可以選擇XSLT->XSL Transformation或點擊來直接在XML Spy中查看saveit.xml的最終顯示效果。也可以到G:////xmlspy目錄下使用瀏覽器觀看,但瀏覽器必須是IE6以上的版本。如果想輸出變換結果文檔,可以在XML Spy中變換後點擊將結果文檔存檔即可。最終顯示效果18所示。以上代碼在XML Spy5中調試通過。
圖18