xml技術(shù)報告-面向圖書管理信息的xml程序設(shè)計_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  重慶科技學(xué)院</b></p><p><b>  XML技術(shù)報告</b></p><p>  院(系):電氣與信息工程學(xué)院 班 級: </p><p>  學(xué)生姓名: 學(xué) 號: </p><p>  課程名

2、稱:_ _ XML技術(shù)_ ______ 報告題目: 面向圖書管理信息的XML程序設(shè)計___ _ </p><p>  完成日期: 2010年 11月 22日 </p><p>  指導(dǎo)教師評語: ______________ _________________________ </p>

3、<p>  ______________________ _________________ </p><p>  ______ _________________________________ </p><p>  報告成績:______ ________ __ 教師簽名:_

4、________ _______________ </p><p><b>  摘 要</b></p><p>  隨著印刷技術(shù)的發(fā)展,知識的不斷翻新,以前的四書五經(jīng)上的東西已經(jīng)再也不能夠滿足中國人類發(fā)展的需要。學(xué)生需要的更多的讀書來充實自己的知識庫,了解世界的最新信息,所以有必要為圖書館設(shè)定一套管理系統(tǒng),面向圖書館的信息的XML的程序設(shè)計被提了出來。這項設(shè)

5、計旨在針對各大高校的圖書館書籍信息的管理,為了使系統(tǒng)管理員更方便的操作書籍信息,達到書籍信息的快速查詢,添加,修改等。該文檔包含了豐富的XML知識,其中有XML文件組織數(shù)據(jù)、DTD文件檢測XML文件有效性、XSL樣式表文件顯示數(shù)據(jù)格式、Java版的DOM解析器設(shè)計解析XML文件,該項設(shè)計將面向圖書管理信息的數(shù)據(jù)組織技術(shù)解析得非常透徹,清晰的設(shè)計思路能夠讓XML程序設(shè)計人員和讀者獲益匪淺。</p><p>  關(guān)鍵

6、詞:書籍信息,XML程序設(shè)計</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p><b>  目 錄II</b></p><p><b>  1需求分析1</b></p><p

7、>  1.1設(shè)計的目的1</p><p>  1.2設(shè)計的基本要求1</p><p><b>  2概要設(shè)計3</b></p><p>  2.1 根樹形結(jié)構(gòu)圖3</p><p>  2.2 子節(jié)點樹形結(jié)構(gòu)圖3</p><p>  2.2.1書籍詳細結(jié)構(gòu)圖3</p>

8、<p>  2.2.2 管理員信息結(jié)構(gòu)圖6</p><p><b>  3詳細設(shè)計7</b></p><p>  3.1 Java DOM解析器程序設(shè)計7</p><p>  3.1.1 自定義類設(shè)計7</p><p>  3.1.2 主函數(shù)設(shè)計8</p><p>  3.

9、1.3 程序流程圖8</p><p>  3.2 XSL樣式表調(diào)用設(shè)計10</p><p><b>  4系統(tǒng)測試11</b></p><p>  4.1 XML文件規(guī)范性測試11</p><p>  4.2 XSL樣式表文件顯示測試12</p><p>  4.3 XML有效性驗證1

10、3</p><p>  4.4 Java DOM解析器測試13</p><p>  5 各模塊代碼文件14</p><p>  5.1 xml關(guān)聯(lián)文件14</p><p>  5.2 xsl關(guān)聯(lián)文件16</p><p>  5.3 DTD關(guān)聯(lián)文件21</p><p>  5.4 Jav

11、a程序源代碼22</p><p><b>  總 結(jié)24</b></p><p><b>  致謝25</b></p><p><b>  參考文獻26</b></p><p><b>  1需求分析</b></p><p>

12、;<b>  1.1設(shè)計的目的</b></p><p>  本套信息管理系統(tǒng)旨在為圖書館書籍信息提供更好的信息管理,使用xml語言描述圖書館內(nèi)書籍的詳細信息。</p><p>  1.2設(shè)計的基本要求</p><p>  1、 選用合適的編輯器,編寫一個XML文件,應(yīng)至少包括下述信息內(nèi)容: </p><p>  該圖書館

13、的基本信息:圖書館的名字、地點、容量、開放時間等。</p><p><b>  書目 </b></p><p><b>  書目1 </b></p><p>  書目基本信息(書籍名稱、單價、ISBN、書目類別、作者、書籍編號)</p><p>  入庫信息(入館時間、入館數(shù)量、經(jīng)辦人)</p

14、><p><b>  書目2</b></p><p><b>  書目3</b></p><p><b>  ……</b></p><p><b>  書目N</b></p><p><b>  出版社信息</b>

15、</p><p>  出版社基本信息(名稱、地點、標(biāo)志、聯(lián)系方式(電話、網(wǎng)址、傳真、email))</p><p>  出版社主要出版圖書信息(書目類型、出版方向,叢書名稱)</p><p>  管理員信息(編號、姓名、聯(lián)系方式、管理的范圍)</p><p>  2、針對該XML文件,畫出其相應(yīng)的樹狀結(jié)構(gòu)圖。</p><p

16、>  3、針對所編寫的XML文件,編寫其相應(yīng)的DTD文件 ,并使用解析器驗證其有效性,對驗證結(jié)果抓圖。</p><p>  4、針對所編寫的XML文件,編寫合適的XSL文件,將書目基本信息打印成表格,并用IE瀏覽器進行瀏覽并截圖。</p><p>  5、使用JAVA編程語言,對XML文件進行解析:</p><p>  1)顯示該xml文件的所有節(jié)點、屬性的名

17、字;</p><p>  2)同時顯示該xml文件所有標(biāo)記的文本數(shù)據(jù);</p><p>  3)計算書的平均單價并進行輸出。</p><p>  1.3 xml程序代碼要求</p><p>  1、xml文件中應(yīng)該包括文本內(nèi)容、標(biāo)記、屬性、命名空間,混合標(biāo)記等的內(nèi)容。</p><p>  2、dtd文件應(yīng)該有相應(yīng)的結(jié)

18、果截圖。</p><p>  3、xsl文件應(yīng)用到規(guī)范中的常用技巧,例如模板調(diào)用、for-each、value-of、xsl標(biāo)記等。</p><p>  4、解析器結(jié)果應(yīng)該有抓圖。</p><p>  5、形成的代碼交老師驗證。</p><p><b>  2概要設(shè)計</b></p><p>  

19、本套xml文件系統(tǒng)的源文件中,包含一個xml文件,里面詳細的記錄了這套管理系統(tǒng)的結(jié)構(gòu)設(shè)計模型,使得整個設(shè)計看起來相當(dāng)清晰。</p><p>  2.1 根樹形結(jié)構(gòu)圖</p><p>  由于本次程序設(shè)計是針對圖書館而設(shè)計的,所以根節(jié)點是圖書館,從實驗的需求上面可以看見,下面所包含的分支節(jié)點,他們分別是:名字、地點、容量、開放時間、書目、出版社信息和管理員信息等,如下圖所示:</p&g

20、t;<p>  2.2 子節(jié)點樹形結(jié)構(gòu)圖</p><p>  2.2.1書籍詳細結(jié)構(gòu)圖</p><p>  圖書館根節(jié)點包括5個詳細信息,其中書籍具有書籍基本信息以及入庫信息,如下圖所示:</p><p>  其中書籍基本信息有包括:書籍名稱、單價、ISBN、書目類別、作者和書籍編號,如圖2.3所示:</p><p>  而“入

21、庫信息”有包括:入庫時間,如寬數(shù)量,經(jīng)辦人等。如下圖所示:</p><p>  “出版社信息”包含的子節(jié)點有:出版社基本信息和出版社主要出版圖書信息,而“出版社基本信息”包含的子節(jié)點有:名稱、地點、標(biāo)志和聯(lián)系方式,“出版社主要出版圖書信息”包含的子節(jié)點有:書目類型、出版方向和叢書名稱,如圖2.5:</p><p>  2.2.2 管理員信息結(jié)構(gòu)圖</p><p> 

22、 “管理員信息”包含的子節(jié)點有“管理員”,該子節(jié)點包含的子節(jié)點有:編號、姓名、聯(lián)系方式和管理范圍等,如下圖所示:</p><p><b>  3詳細設(shè)計</b></p><p>  3.1 Java DOM解析器程序設(shè)計</p><p>  DOM解析器設(shè)計的主要目地是解析XML文件中的數(shù)據(jù)。使用JAVA編程語言,對XML文件進行解析:<

23、;/p><p>  1、顯示該xml文件的所有節(jié)點、屬性的名字;</p><p>  2、同時顯示該xml文件所有標(biāo)記的文本數(shù)據(jù);</p><p>  3、計算書的平均單價并進行輸出。</p><p>  XMLInfo.java文件(見附錄)中,能夠顯示所有節(jié)點名、屬性名和文本數(shù)據(jù),同時輸出了所有書籍的平均價格。</p><

24、p>  3.1.1 自定義類設(shè)計</p><p>  在TestValidate.java文件中,自定義類為GiveData。</p><p>  GiveData,包含私有成員:</p><p>  private ArrayList<Integer> bookCount = new ArrayList<Integer>(); <

25、;/p><p>  private ArrayList<Double> price = new ArrayList<Double>(); </p><p>  bookCount是記錄每一類書的數(shù)量,而price是記錄每一類書的單價。</p><p>  GiveData,包含方法:</p><p>  public do

26、uble getAverage(); </p><p>  public void showPrice();</p><p>  public void output(NodeList nodeList);</p><p>  getAverage()方法返回書籍的平均單價,showPrice()方法在屏幕上顯示平均單價,output( NodeList node

27、List) 函數(shù)是遞歸輸出和nodeList中保存的Node類型節(jié)點相關(guān)的數(shù)據(jù),當(dāng)節(jié)點類型是Element節(jié)點時,輸出節(jié)點名字,當(dāng)節(jié)點類型是Text時就輸出節(jié)點中的數(shù)據(jù)。</p><p>  3.1.2 主函數(shù)設(shè)計</p><p>  1) 主函數(shù)中,先構(gòu)造一個GiveData類的對象giveData。</p><p>  2)DocumentBuilderFact

28、ory.newInstance</p><p>  3)factory.setIgnoringElementContentWhitespace(true)對輸出做空白處理。</p><p>  4)factory.newDocumentBuilder()實例化DocumentBuilder類的對象domParser 。</p><p>  5)domParser對象

29、的parse方法(參數(shù)為File類的對象)實例化Document的一個對象document。</p><p>  6)document對象的getDocumentElement()方法實例化Element的對象root,再將root所獲取的子節(jié)點放在NodeList的對象nodeList對象中。</p><p>  7)調(diào)用giveData的output()方法顯示XML文件信息,然后調(diào)用

30、giveData的showPrice()方法顯示書籍的平均單價。</p><p><b>  8)捕獲異常。</b></p><p>  3.1.3 程序流程圖</p><p>  TestValidate.java文件中,主函數(shù)程序流程圖</p><p>  3.2 XSL樣式表調(diào)用設(shè)計</p><

31、p>  面向圖書管理信息的XML程序設(shè)計中包含了xsl_file.xsl文件(見附錄),能夠使書目基本信息非常漂亮地顯示在瀏覽器中。 </p><p>  首先在XSL編碼中添加一個首行為一列,第二行為六列(書籍名稱,單價(元/本),書目類別,作者,書籍編號)的Table表,然后在第二行下添加代碼:</p><p>  <xsl:for-each select="圖

32、書館/書目/書目基本信息"></p><p>  <tr align="center"><xsl:apply-templates select="./*"/></tr></p><p>  </xsl:for-each></p><p>  xsl:for-eac

33、h循環(huán)調(diào)用模板。</p><p>  添加兩個非主模板,代碼如下:</p><p>  <xsl:template match="書目基本信息"></p><p>  <td bgcolor="#FCB829"><xsl:apply-templates select="./*"

34、/></td></p><p>  </xsl:template></p><p>  <xsl:template match="書目基本信息/*"></p><p>  <td bgcolor="#FCB829"><xsl:value-of select="

35、;."/></td></p><p>  </xsl:template></p><p>  第一個模板的作用是尋找“書目基本信息”下所有子節(jié)點標(biāo)記,第二個模板的作用是顯示子標(biāo)記的內(nèi)容。</p><p><b>  4系統(tǒng)測試</b></p><p>  4.1 XML文件規(guī)范性測

36、試</p><p>  用VS2005編寫完xml_file.xml文件后,點擊運行,在瀏覽器中截圖如下。</p><p>  行xml_file.xml文件聲明和節(jié)點數(shù)據(jù)顯示如圖4.1。 </p><p>  圖4.1 聲明和節(jié)點信息顯示圖</p><p>  “書目”節(jié)點數(shù)據(jù)顯示如圖7.2。</p><p>  圖

37、4.2 書目節(jié)點信息顯示圖</p><p>  “出版社信息”節(jié)點數(shù)據(jù)顯示如圖4.3。</p><p>  圖4.3 出版社信息節(jié)點顯示圖</p><p>  “管理員信息”節(jié)點數(shù)據(jù)顯示如圖4.4。</p><p>  圖4.4 管理員節(jié)點信息顯示圖</p><p>  4.2 XSL樣式表文件顯示測試</p&g

38、t;<p>  XSL語言為XML提供顯示數(shù)據(jù)的外觀,按照要求將書目基本信息打印成表格,在VS2005下運行xml_file.xml文件,顯示如圖4.5。</p><p>  圖4.5XSL樣式表顯示測試</p><p>  4.3 XML有效性驗證</p><p>  將newxml.xml文件路徑輸入到驗證XML文件有效性的Java程序中,其結(jié)果顯

39、示如圖4.6所示。</p><p>  圖4.6 XML有效性驗證</p><p>  4.4 Java DOM解析器測試</p><p>  用Java語言編寫DOM解析器對XML文件進行解析。顯示xml_file.xml文件的所有節(jié)點名、屬性名和文本數(shù)據(jù)的顯示圖如下。</p><p><b>  5 各模塊代碼文件</b&

40、gt;</p><p>  5.1 xml關(guān)聯(lián)文件</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <!DOCTYPE 圖書館 SYSTEM "dtd-file.DTD"></p><p>

41、  <?xml-stylesheet href="xsl_file.xsl" type="text/xsl"?></p><p><b>  <圖書館></b></p><p><b>  <圖書館基本信息></b></p><p>  <圖

42、書館名字>科院圖書館</圖書館名字></p><p>  <圖書館地點>大學(xué)城科技學(xué)院</圖書館地點></p><p>  <開放時間>早上8:00-晚上21:00</開放時間></p><p>  </圖書館基本信息></p><p><b>  <

43、;書目></b></p><p>  <書名>幸福像花兒一樣紅</書名></p><p>  <書籍編號>0001</書籍編號></p><p>  <作者>魯迅</作者></p><p>  <單價 單位="元">55&

44、lt;/單價></p><p><b>  <出版社信息></b></p><p>  <名稱>人民出版社</名稱></p><p>  <地點>北京</地點></p><p>  <標(biāo)志>@</標(biāo)志></p><

45、;p><b>  <聯(lián)系方式 ></b></p><p>  <電話>13123456789</電話></p><p>  <網(wǎng)址>WWW.hao123.com</網(wǎng)址></p><p>  <傳真>45666655</傳真></p><

46、;p>  <email>jhaskjabk@162.com</email></p><p><b>  </聯(lián)系方式></b></p><p><b>  </出版社信息></b></p><p><b>  <入庫信息></b><

47、;/p><p>  <入管時間>20080910</入管時間></p><p>  <入管數(shù)量>1000</入管數(shù)量></p><p>  <經(jīng)辦人>小小洪</經(jīng)辦人></p><p><b>  </入庫信息></b></p>

48、<p><b>  </書目></b></p><p><b>  <書目></b></p><p>  <書名>壞蛋是怎樣煉成的</書名></p><p>  <書籍編號>0002</書籍編號></p><p> 

49、 <作者>謝文東</作者></p><p>  <單價 單位="元">111</單價></p><p><b>  <出版社信息></b></p><p>  <名稱>電子出版社</名稱></p><p>  <

50、地點>上海</地點></p><p>  <標(biāo)志>#</標(biāo)志></p><p><b>  <聯(lián)系方式 ></b></p><p>  <電話>13987564222</電話></p><p>  <網(wǎng)址>WWW.haokan123

51、.com</網(wǎng)址></p><p>  <傳真>89955258</傳真></p><p>  <email>gangtie@162.com</email></p><p><b>  </聯(lián)系方式></b></p><p><b>  &

52、lt;/出版社信息></b></p><p><b>  <入庫信息></b></p><p>  <入管時間>20100101</入管時間></p><p>  <入管數(shù)量>20000</入管數(shù)量></p><p>  <經(jīng)辦人>

53、王五</經(jīng)辦人></p><p><b>  </入庫信息></b></p><p><b>  </書目></b></p><p><b>  <書目></b></p><p>  <書名>花兒問什么這樣紅</

54、書名></p><p>  <書籍編號>0003</書籍編號></p><p>  <作者>陽靜</作者></p><p>  <單價 單位="元">66</單價></p><p><b>  <出版社信息></b&g

55、t;</p><p>  <名稱>哈爾濱出版社</名稱></p><p>  <地點>哈爾濱</地點></p><p>  <標(biāo)志>¥</標(biāo)志></p><p><b>  <聯(lián)系方式 ></b></p><p>

56、  <電話>13555225559</電話></p><p>  <網(wǎng)址>WWW.hao123.com</網(wǎng)址></p><p>  <傳真>84684641</傳真></p><p>  <email>jhaskjabk@162.com</email></p>

57、;<p><b>  </聯(lián)系方式></b></p><p><b>  </出版社信息></b></p><p><b>  <入庫信息></b></p><p>  <入管時間>20090110</入管時間></p&g

58、t;<p>  <入管數(shù)量>300</入管數(shù)量></p><p>  <經(jīng)辦人>小小黑</經(jīng)辦人></p><p><b>  </入庫信息></b></p><p><b>  </書目></b></p><p>

59、;<b>  <管理員信息></b></p><p>  <編號>110</編號></p><p>  <姓名>劉真</姓名></p><p>  <聯(lián)系方式> 固定電話="13246666555" 手機="1311111111"&l

60、t;/聯(lián)系方式></p><p>  <管理范圍>一樓管理員</管理范圍></p><p><b>  </管理員信息></b></p><p><b>  <管理員信息></b></p><p>  <編號>111</編號&g

61、t;</p><p>  <姓名>劉歡</姓名></p><p>  <聯(lián)系方式> 固定電話="13123654564" 手機="13856246236"</聯(lián)系方式></p><p>  <管理范圍>二樓管理員</管理范圍></p>&l

62、t;p><b>  </管理員信息></b></p><p><b>  <管理員信息></b></p><p>  <編號>112</編號></p><p>  <姓名>魏世紅</姓名></p><p>  <聯(lián)系

63、方式> 固定電話="15455451512" 手機="13545454545"</聯(lián)系方式></p><p>  <管理范圍>三樓管理員</管理范圍></p><p><b>  </管理員信息></b></p><p><b>  <

64、;/圖書館></b></p><p>  5.2 xsl關(guān)聯(lián)文件</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <xsl:stylesheet version="1.0" xmlns:xsl=&

65、quot;http://www.w3.org/1999/XSL/Transform"></p><p>  <xsl:template match="/"></p><p><b>  <html> </b></p><p>  <title>圖書館</title&g

66、t;</p><p>  <body bgcolor="#FF66CC"></p><p>  <head>圖書館</head></p><p><b>  <tr></b></p><p>  <tr>圖書館基本信息</tr>&

67、lt;/p><p>  <td>圖書館名字</td></p><p>  <td>圖書館地點</td></p><p>  <td>開放時間</td></p><p><b>  </tr></b></p><p> 

68、 <table border="1" align="center"></p><p><b>  <tr></b></p><p>  <td>書名</td></p><p>  <td>書籍編號</td></p>&l

69、t;p>  <td>作者</td></p><p>  <td>單價</td></p><p>  <td>出版社信息</td></p><p><b>  </tr></b></p><p>  <xsl:for-each

70、select="//書目"></p><p><b>  <tr></b></p><p>  <xsl:apply-templates select="書名"/></p><p>  <xsl:apply-templates select="書籍編號&quo

71、t;/></p><p>  <xsl:apply-templates select="作者"/></p><p>  <xsl:apply-templates select="單價"/></p><p>  <xsl:apply-templates select="出版社信息&q

72、uot;/></p><p><b>  </tr></b></p><p>  </xsl:for-each></p><p><b>  </table></b></p><p>  <table border="1">&

73、lt;/p><p>  <tr>管理員信息</tr></p><p><b>  <tr></b></p><p>  <td>編號</td></p><p>  <td>姓名</td></p><p>  <t

74、d>聯(lián)系</td></p><p>  <td>管理范圍</td></p><p><b>  </tr></b></p><p>  <xsl:for-each select="//管理員信息"></p><p><b> 

75、 <tr></b></p><p>  <xsl:apply-templates select="編號"/></p><p>  <xsl:apply-templates select="姓名"/></p><p>  <xsl:apply-templates select

76、="聯(lián)系"/></p><p>  <xsl:apply-templates select="管理范圍"/></p><p><b>  </tr></b></p><p>  </xsl:for-each></p><p><b&g

77、t;  </table></b></p><p><b>  </table></b></p><p><b>  </body></b></p><p><b>  </html></b></p><p>  <

78、;/xsl:template></p><p>  <xsl:template match="//書名"></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p&g

79、t;<b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:template match="//書籍編號"></p><p><b>  <td></b></p><p> 

80、 <xsl:value-of select="."/></p><p><b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:template match="//作者"></p>&l

81、t;p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p><b>  </td></b></p><p>  </xsl:template></p><p>

82、;  <xsl:template match="//單價"></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p><b>  </td></b><

83、/p><p>  </xsl:template></p><p>  <xsl:template match="//出版社信息"></p><p><b>  <td></b></p><p>  <xsl:value-of select="//出版社信

84、息/名稱"/></p><p>  <xsl:value-of select="//出版社信息/地點"/></p><p>  <xsl:value-of select="//出版社信息/標(biāo)志"/></p><p><b>  </td></b><

85、/p><p>  </xsl:template></p><p>  <xsl:template match="//編號"></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/&

86、gt;</p><p><b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:template match="//姓名"></p><p><b>  <td></b>&l

87、t;/p><p>  <xsl:value-of select="."/></p><p><b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:template match="//聯(lián)系&quo

88、t;></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p><b>  </td></b></p><p>  </xsl:template>

89、</p><p>  <xsl:template match="//管理范圍"></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p><b>  <

90、;/td></b></p><p>  </xsl:template></p><p>  </xsl:stylesheet></p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  &l

91、t;xsl:stylesheet version="1.0"</p><p>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></p><p>  <?xsl-stylesheet herf="xsl_file.xsl" type="text/xsl&qu

92、ot;?></p><p>  <xsl:template match="/"></p><p><b>  <html></b></p><p>  <title>圖書館</title></p><p>  <body bgcolor=&q

93、uot;#FF66CC"></p><p>  <table border="1" align="center"></p><p>  <head>圖書館</head></p><p>  <tr>圖書館基本信息</tr></p><

94、;p>  <td>名字</td></p><p>  <td>地點</td></p><p>  <td>開放時間</td></p><p><b>  </table></b></p><p>  <table border

95、="1" align="center"></p><p>  <tr> </p><p>  <td>書名</td></p><p>  <td>書籍編號</td></p><p>  <td>作者&

96、lt;/td></p><p>  <td>單價</td></p><p><b>  </tr></b></p><p>  <!--<xsl:for-each select="//書目"></p><p><b>  &l

97、t;tr></b></p><p>  <xsl:apply-templates select="//書名"/></p><p>  <xsl:apply-templates select="//書籍編號"/></p><p>  <xsl:apply-templates sel

98、ect="//作者"/></p><p>  <xsl:apply-templates select="//單價"/></p><p><b>  </tr></b></p><p>  </xsl:for-each>--></p><p

99、><b>  <tr></b></p><p>  <xsl:apply-templates select="圖書館/書目"/></p><p><b>  </tr></b></p><p><b>  </table></b>

100、;</p><p>  <table border="1" align="center"></p><p>  <tr>管理員信息</tr></p><p><b>  <tr></b></p><p>  <td>編號&

101、lt;/td></p><p>  <td>姓名</td></p><p>  <td>聯(lián)系方式</td></p><p>  <td>管理范圍</td></p><p><b>  </tr></b></p><

102、;p>  <xsl:apply-templates select="圖書館/管理員信息"/></p><p>  </table> </p><p><b>  </body></b></p><p><b>  </html></b><

103、/p><p>  <!--</xsl:template></p><p>  <xsl:template match="書名/*"></p><p><b>  <td></b></p><p>  <xsl:apply-templates select=&

104、quot;."/></p><p><b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:template match="書籍編號/*"></p><p><b>  <td

105、></b></p><p>  <xsl:value-of select="."/></p><p><b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:template ma

106、tch="作者/*"></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p><b>  </td></b></p><p>  <

107、;/xsl:template></p><p>  <xsl:template match="單價/*"></p><p><b>  <td></b></p><p>  <xsl:value-of select="."/></p><p&g

108、t;<b>  </td></b></p><p><b>  --></b></p><p>  </xsl:template></p><p>  <xsl:template match="//圖書館基本信息"></p><p>&

109、lt;b>  <tr></b></p><p>  <xsl:apply-templates select="./*"/></p><p><b>  </tr></b></p><p>  </xsl:template></p><p&g

110、t;  <xsl:template match="圖書館/圖書館基本信息"></p><p><b>  <td></b></p><p>  <xsl:value-of select="./圖書館名字"/></p><p><b>  </td>

111、</b></p><p><b>  <td></b></p><p>  <xsl:value-of select="./圖書館地點"/></p><p><b>  </td></b></p><p><b>  &l

112、t;td></b></p><p>  <xsl:value-of select="./開放時間"/></p><p><b>  </td></b></p><p>  </xsl:template></p><p>  <xsl:temp

113、late match="//管理員信息"></p><p><b>  <tr></b></p><p>  <xsl:apply-templates select="./*"/></p><p><b>  </tr></b></p&

114、gt;<p>  </xsl:template></p><p>  <xsl:template match="圖書館/書目"></p><p><b>  <td></b></p><p>  <xsl:value-of select="./書名"

115、/></p><p><b>  </td></b></p><p><b>  <td></b></p><p>  <xsl:value-of select="./書籍編號"/></p><p><b>  </td&

116、gt;</b></p><p><b>  <td></b></p><p>  <xsl:value-of select="./作者"/></p><p><b>  </td></b></p><p><b>  &l

117、t;td></b></p><p>  <xsl:value-of select="./單價"/></p><p><b>  </td></b></p><p><b>  <tr/></b></p><p>  </

118、xsl:template></p><p>  <xsl:template match="圖書館/管理員信息"></p><p><b>  <td></b></p><p>  <xsl:value-of select="./編號"/></p>&

119、lt;p><b>  </td></b></p><p><b>  <td></b></p><p>  <xsl:value-of select="./姓名"/></p><p><b>  </td></b></p&

120、gt;<p><b>  <td></b></p><p>  <xsl:value-of select="./聯(lián)系方式"/></p><p><b>  </td></b></p><p><b>  <td></b>

121、</p><p>  <xsl:value-of select="./管理范圍"/></p><p><b>  </td></b></p><p><b>  <tr/></b></p><p>  </xsl:template>

122、</p><p>  </xsl:stylesheet></p><p>  5.3 DTD關(guān)聯(lián)文件</p><p>  <!ELEMENT 圖書館 (書目*,管理員信息*)></p><p>  <!ELEMENT 書目 (書名,書籍編號,作者,單價,出版社信息,入庫信息)></p><

123、;p>  <!ELEMENT 書名 (#PCDATA)></p><p>  <!ELEMENT 書籍編號 (#PCDATA)></p><p>  <!ELEMENT 作者 (#PCDATA)></p><p>  <!ELEMENT 單價 (#PCDATA)></p><p>  &l

124、t;!ELEMENT 出版社信息 (名稱,地點,標(biāo)志?,聯(lián)系方式)></p><p>  <!ELEMENT 名稱 (#PCDATA)></p><p>  <!ELEMENT 地點 (#PCDATA)></p><p>  <!ELEMENT 標(biāo)志 ANY></p><p>  <!ELEME

125、NT 聯(lián)系方式 (電話,網(wǎng)址,傳真,email?)></p><p>  <!ELEMENT 電話 (#PCDATA)></p><p>  <!ELEMENT 網(wǎng)址 (#PCDATA)></p><p>  <!ELEMENT 傳真 (#PCDATA)></p><p>  <!ELEMENT

126、 email (#PCDATA)></p><p>  <!ELEMENT 入庫信息 (入管時間,入管數(shù)量,經(jīng)辦人)></p><p>  <!ELEMENT 入管時間 (#PCDATA)></p><p>  <!ELEMENT 入管數(shù)量 (#PCDATA)></p><p>  <!ELEM

127、ENT 經(jīng)辦人 (#PCDATA)></p><p>  <!ELEMENT 管理員信息 (編號,姓名,聯(lián)系,管理范圍)></p><p>  <!ELEMENT 編號 (#PCDATA)></p><p>  <!ELEMENT 姓名 (#PCDATA)></p><p>  <!ELEMEN

128、T 聯(lián)系 (#PCDATA)></p><p>  <!ELEMENT 管理范圍 (#PCDATA)></p><p>  <!ATTLIST 單價 單位 CDATA "元"></p><p>  <!ATTLIST 聯(lián)系 固定電話 CDATA #REQUIRED></p><p>

129、;  <!ATTLIST 聯(lián)系 手機 CDATA #REQUIRED></p><p>  5.4 Java程序源代碼</p><p>  import javax.xml.parsers.*;</p><p>  import org.xml.sax.helpers.*;</p><p>  import org.xml.sax

130、.*;</p><p>  import java.io.*;</p><p>  import org.w3c.dom.*;</p><p>  import java.util.Scanner;</p><p>  public class TestValidate{</p><p>  public static

131、 void main(String args[]){</p><p>  String fileName=null;</p><p>  try { Scanner reader=new Scanner(System.in);</p><p>  System.out.print("請輸入要驗證有效性的XML文件的名字:");</p>

132、;<p>  fileName=reader.nextLine();</p><p>  DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();</p><p>  factory.setValidating(true);</p><p>  DocumentBuilde

133、r domParser= factory.newDocumentBuilder();</p><p>  MyHandler handler=new MyHandler();</p><p>  domParser.setErrorHandler(handler);</p><p>  Document document=domParser.parse(new Fi

134、le(fileName)) ;</p><p>  if(handler.errorMessage==null)</p><p>  System.out.println(fileName+"文件是有效的"); </p><p><b>  else</b></p><p>  System.out.

135、println(fileName+"文件不是有效的"); </p><p>  } </p><p>  catch(Exception e){</p><p>  System.out.println(e);</p><p><b>  }</b></p><

136、p><b>  }</b></p><p><b>  }</b></p><p>  class MyHandler extends DefaultHandler{</p><p>  String errorMessage=null;</p><p>  public void error

137、(SAXParseException e) throws SAXException{</p><p>  errorMessage=e.getMessage();</p><p>  System.out.println("一般錯誤:"+errorMessage); </p><p><b>  }</b></p>

138、;<p>  public void fatalError(SAXParseException e) throws SAXException{</p><p>  errorMessage=e.getMessage();</p><p>  System.out.println("致命錯誤:"+errorMessage); }}</p>&l

139、t;p><b>  總 結(jié)</b></p><p>  經(jīng)過二周的努力,本學(xué)期XML程序設(shè)計按照老師的要求順利完成。使用XML文件編寫一個圖書館信息系統(tǒng),該文檔描述其圖書館的名字、地點、開放時間以及所有書目信息。包括下述信息內(nèi)容:書目、出版社信息、管理員信息。</p><p>  書目所有信息,我首先根據(jù)對圖書館書目信息的了解,畫出了各實體直接的層次關(guān)系。然后根

140、據(jù)層次關(guān)系圖寫出XML文件,編寫相應(yīng)的DTD文件和XSL文件。驗證各個文件的有效性。最有使用JAVA編程語言對XML文件解析。</p><p>  在整個設(shè)計過程中感覺還是比較簡單的,不僅提供了直接在數(shù)據(jù)上工作的通用方法,而且XML的威力在于將用戶界面和結(jié)構(gòu)化數(shù)據(jù)組分離,允許不同來源數(shù)據(jù)的無縫集成和對同一數(shù)據(jù)的多種處理。XML是靈活的、可擴展的、有良好的結(jié)構(gòu)和約束。這使得我們更加方便的應(yīng)用XML語言.</p

141、><p>  整個設(shè)計過程中的難點在于JAVA編程語言和JAVA編程軟件的應(yīng)用,這主要是因為對軟件方向的知識沒留意學(xué)習(xí),認為自己網(wǎng)絡(luò)方向沒必要學(xué)習(xí)編程。以后的學(xué)習(xí)過程中應(yīng)該擴大學(xué)習(xí)范圍,不能僅限于自己的專業(yè)方向上。</p><p><b>  致謝</b></p><p>  通過對程序的編寫和實驗報告的編寫,完成了本次實驗報告。程序中有許多不足之

142、處,通過老師的幫助,認真學(xué)習(xí)知識點,掌握其要點,老師給與認真解答遇到的難題,使得此次程序得到了很大的改進,所以在此,感謝老師的幫助!</p><p>  同時,在編寫程序的過程當(dāng)中還有不少給與我?guī)椭耐瑢W(xué),在此也非常感謝他們!</p><p><b>  參考文獻</b></p><p>  [1]王震江 XML程序設(shè)計 中國鐵道工業(yè)出版社 2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論