欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    XML技术报告面向图书管理信息的XML程序设计.doc

    • 资源ID:2389605       资源大小:183KB        全文页数:30页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    XML技术报告面向图书管理信息的XML程序设计.doc

    重庆科技学院XML技术报告 院(系):电气与信息工程学院 班 级: 学生姓名: 学 号: 课程名称:_ _ XML技术_ _ 报告题目: 面向图书管理信息的XML程序设计_ _ 完成日期: 2010年 11月 22日 指导教师评语: _ _ _ _ _ _ 报告成绩:_ _ _ 教师签名:_ _ 摘 要随着印刷技术的发展,知识的不断翻新,以前的四书五经上的东西已经再也不能够满足中国人类发展的需要。学生需要的更多的读书来充实自己的知识库,了解世界的最新信息,所以有必要为图书馆设定一套管理系统,面向图书馆的信息的XML的程序设计被提了出来。这项设计旨在针对各大高校的图书馆书籍信息的管理,为了使系统管理员更方便的操作书籍信息,达到书籍信息的快速查询,添加,修改等。该文档包含了丰富的XML知识,其中有XML文件组织数据、DTD文件检测XML文件有效性、XSL样式表文件显示数据格式、Java版的DOM解析器设计解析XML文件,该项设计将面向图书管理信息的数据组织技术解析得非常透彻,清晰的设计思路能够让XML程序设计人员和读者获益匪浅。关键词:书籍信息,XML程序设计目 录摘 要I目 录II1需求分析11.1设计的目的11.2设计的基本要求12概要设计32.1 根树形结构图32.2 子节点树形结构图32.2.1书籍详细结构图32.2.2 管理员信息结构图63详细设计73.1 Java DOM解析器程序设计73.1.1 自定义类设计73.1.2 主函数设计83.1.3 程序流程图83.2 XSL样式表调用设计104系统测试114.1 XML文件规范性测试114.2 XSL样式表文件显示测试134.3 XML有效性验证134.4 Java DOM解析器测试145 各模块代码文件155.1 xml关联文件155.2 xsl关联文件175.3 DTD关联文件225.4 Java程序源代码23总 结25致谢26参考文献271需求分析1.1设计的目的本套信息管理系统旨在为图书馆书籍信息提供更好的信息管理,使用xml语言描述图书馆内书籍的详细信息。1.2设计的基本要求1、 选用合适的编辑器,编写一个XML文件,应至少包括下述信息内容: 该图书馆的基本信息:图书馆的名字、地点、容量、开放时间等。书目 书目1 书目基本信息(书籍名称、单价、ISBN、书目类别、作者、书籍编号) 入库信息(入馆时间、入馆数量、经办人) 书目2书目3书目N出版社信息 出版社基本信息(名称、地点、标志、联系方式(电话、网址、传真、email) 出版社主要出版图书信息(书目类型、出版方向,丛书名称)管理员信息(编号、姓名、联系方式、管理的范围)2、针对该XML文件,画出其相应的树状结构图。3、针对所编写的XML文件,编写其相应的DTD文件 ,并使用解析器验证其有效性,对验证结果抓图。4、针对所编写的XML文件,编写合适的XSL文件,将书目基本信息打印成表格,并用IE浏览器进行浏览并截图。5、使用JAVA编程语言,对XML文件进行解析: 1)显示该xml文件的所有节点、属性的名字; 2)同时显示该xml文件所有标记的文本数据; 3)计算书的平均单价并进行输出。1.3 xml程序代码要求1、xml文件中应该包括文本内容、标记、属性、命名空间,混合标记等的内容。2、dtd文件应该有相应的结果截图。3、xsl文件应用到规范中的常用技巧,例如模板调用、for-each、value-of、xsl标记等。4、解析器结果应该有抓图。5、形成的代码交老师验证。2概要设计本套xml文件系统的源文件中,包含一个xml文件,里面详细的记录了这套管理系统的结构设计模型,使得整个设计看起来相当清晰。2.1 根树形结构图由于本次程序设计是针对图书馆而设计的,所以根节点是图书馆,从实验的需求上面可以看见,下面所包含的分支节点,他们分别是:名字、地点、容量、开放时间、书目、出版社信息和管理员信息等,如下图所示:图书馆名 字地 点开放时间书目信息出版社信息管理员信息图2.1 根树形节点图2.2 子节点树形结构图2.2.1书籍详细结构图图书馆根节点包括5个详细信息,其中书籍具有书籍基本信息以及入库信息,如下图所示:书目信息图2.2 书目节点信息书籍信息入库信息其中书籍基本信息有包括:书籍名称、单价、ISBN、书目类别、作者和书籍编号,如图2.3所示:书籍基本信息书籍名称单 价书籍类别作 者书籍编号图2.3 书籍基本信息节点图而“入库信息”有包括:入库时间,如宽数量,经办人等。如下图所示:入库信息入库时间入库数量经办人图2.4 入库信息节点图“出版社信息”包含的子节点有:出版社基本信息和出版社主要出版图书信息,而“出版社基本信息”包含的子节点有:名称、地点、标志和联系方式,“出版社主要出版图书信息”包含的子节点有:书目类型、出版方向和丛书名称,如图2.5:出版社基本信息名 称地 点标 志联系方式图2.5 出版社信息出版社信息2.2.2 管理员信息结构图“管理员信息”包含的子节点有“管理员”,该子节点包含的子节点有:编号、姓名、联系方式和管理范围等,如下图所示:管理员信息编 号姓 名联系方式管理区域图2.6 管理员信息结构图3详细设计3.1 Java DOM解析器程序设计DOM解析器设计的主要目地是解析XML文件中的数据。使用JAVA编程语言,对XML文件进行解析:1、显示该xml文件的所有节点、属性的名字;2、同时显示该xml文件所有标记的文本数据;3、计算书的平均单价并进行输出。XMLInfo.java文件(见附录)中,能够显示所有节点名、属性名和文本数据,同时输出了所有书籍的平均价格。3.1.1 自定义类设计在TestValidate.java文件中,自定义类为GiveData。GiveData,包含私有成员:private ArrayList<Integer> bookCount = new ArrayList<Integer>(); private ArrayList<Double> price = new ArrayList<Double>(); bookCount是记录每一类书的数量,而price是记录每一类书的单价。GiveData,包含方法:public double getAverage(); public void showPrice();public void output(NodeList nodeList);getAverage()方法返回书籍的平均单价,showPrice()方法在屏幕上显示平均单价,output( NodeList nodeList) 函数是递归输出和nodeList中保存的Node类型节点相关的数据,当节点类型是Element节点时,输出节点名字,当节点类型是Text时就输出节点中的数据。3.1.2 主函数设计1) 主函数中,先构造一个GiveData类的对象giveData。2)DocumentBuilderFactory.newInstance3)factory.setIgnoringElementContentWhitespace(true)对输出做空白处理。4)factory.newDocumentBuilder()实例化DocumentBuilder类的对象domParser 。5)domParser对象的parse方法(参数为File类的对象)实例化Document的一个对象document。6)document对象的getDocumentElement()方法实例化Element的对象root,再将root所获取的子节点放在NodeList的对象nodeList对象中。7)调用giveData的output()方法显示XML文件信息,然后调用giveData的showPrice()方法显示书籍的平均单价。8)捕获异常。3.1.3 程序流程图TestValidate.java文件中,主函数程序流程图开 始GiveData类对象实例化DocumentBuilderFactory类对象输出空白处理实例化DocumentBuilder类对象实例化Document类对象实例化Element类对象将获取的子节点存入NodeList的对象中output()方法显示XML文件信息showPrice()方法显示平均单价结 束图3.1 主函数程序流程图3.2 XSL样式表调用设计面向图书管理信息的XML程序设计中包含了xsl_file.xsl文件(见附录),能够使书目基本信息非常漂亮地显示在浏览器中。 首先在XSL编码中添加一个首行为一列,第二行为六列(书籍名称,单价(元/本),书目类别,作者,书籍编号)的Table表,然后在第二行下添加代码:<xsl:for-each select="图书馆/书目/书目基本信息"> <tr align="center"><xsl:apply-templates select="./*"/></tr></xsl:for-each>xsl:for-each循环调用模板。添加两个非主模板,代码如下:<xsl:template match="书目基本信息"> <td bgcolor="#FCB829"><xsl:apply-templates select="./*"/></td> </xsl:template> <xsl:template match="书目基本信息/*"> <td bgcolor="#FCB829"><xsl:value-of select="."/></td></xsl:template>第一个模板的作用是寻找“书目基本信息”下所有子节点标记,第二个模板的作用是显示子标记的内容。4系统测试4.1 XML文件规范性测试用VS2005编写完xml_file.xml文件后,点击运行,在浏览器中截图如下。行xml_file.xml文件声明和节点数据显示如图4.1。 图4.1 声明和节点信息显示图“书目”节点数据显示如图7.2。图4.2 书目节点信息显示图“出版社信息”节点数据显示如图4.3。图4.3 出版社信息节点显示图“管理员信息”节点数据显示如图4.4。图4.4 管理员节点信息显示图4.2 XSL样式表文件显示测试XSL语言为XML提供显示数据的外观,按照要求将书目基本信息打印成表格,在VS2005下运行xml_file.xml文件,显示如图4.5。图4.5XSL样式表显示测试4.3 XML有效性验证将newxml.xml文件路径输入到验证XML文件有效性的Java程序中,其结果显示如图4.6所示。图4.6 XML有效性验证4.4 Java DOM解析器测试用Java语言编写DOM解析器对XML文件进行解析。显示xml_file.xml文件的所有节点名、属性名和文本数据的显示图如下。5 各模块代码文件5.1 xml关联文件<?xml version="1.0" encoding="utf-8"?><!DOCTYPE 图书馆 SYSTEM "dtd-file.DTD"><?xml-stylesheet href="xsl_file.xsl" type="text/xsl"?><图书馆> <图书馆基本信息> <图书馆名字>科院图书馆</图书馆名字> <图书馆地点>大学城科技学院</图书馆地点> <开放时间>早上8:00-晚上21:00</开放时间> </图书馆基本信息> <书目> <书名>幸福像花儿一样红</书名> <书籍编号>0001</书籍编号> <作者>鲁迅</作者> <单价 单位="元">55</单价> <出版社信息> <名称>人民出版社</名称> <地点>北京</地点> <标志></标志> <联系方式 > <电话>13123456789</电话> <网址>WWW</网址> <传真>45666655</传真> <email>jhaskjabk</email> </联系方式> </出版社信息> <入库信息> <入管时间>20080910</入管时间> <入管数量>1000</入管数量> <经办人>小小洪</经办人> </入库信息> </书目> <书目> <书名>坏蛋是怎样炼成的</书名> <书籍编号>0002</书籍编号> <作者>谢文东</作者> <单价 单位="元">111</单价> <出版社信息> <名称>电子出版社</名称> <地点>上海</地点> <标志>#</标志> <联系方式 > <电话>13987564222</电话> <网址>WWW</网址> <传真>89955258</传真> <email>gangtie</email> </联系方式> </出版社信息> <入库信息> <入管时间>20100101</入管时间> <入管数量>20000</入管数量> <经办人>王五</经办人> </入库信息></书目> <书目> <书名>花儿问什么这样红</书名> <书籍编号>0003</书籍编号> <作者>阳静</作者> <单价 单位="元">66</单价> <出版社信息> <名称>哈尔滨出版社</名称> <地点>哈尔滨</地点> <标志>¥</标志> <联系方式 > <电话>13555225559</电话> <网址>WWW</网址> <传真>84684641</传真> <email>jhaskjabk</email> </联系方式> </出版社信息> <入库信息> <入管时间>20090110</入管时间> <入管数量>300</入管数量> <经办人>小小黑</经办人> </入库信息> </书目> <管理员信息> <编号>110</编号> <姓名>刘真</姓名> <联系方式> 固定电话="13246666555" 手机="1311111111"</联系方式> <管理范围>一楼管理员</管理范围> </管理员信息> <管理员信息> <编号>111</编号> <姓名>刘欢</姓名> <联系方式> 固定电话="13123654564" 手机="13856246236"</联系方式> <管理范围>二楼管理员</管理范围> </管理员信息> <管理员信息> <编号>112</编号> <姓名>魏世红</姓名> <联系方式> 固定电话="15455451512" 手机="13545454545"</联系方式> <管理范围>三楼管理员</管理范围> </管理员信息></图书馆>5.2 xsl关联文件<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http:/www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <title>图书馆</title> <body bgcolor="#FF66CC"> <head>图书馆</head> <tr> <tr>图书馆基本信息</tr> <td>图书馆名字</td> <td>图书馆地点</td> <td>开放时间</td> </tr> <table border="1" align="center"> <tr> <td>书名</td> <td>书籍编号</td> <td>作者</td> <td>单价</td> <td>出版社信息</td> </tr> <xsl:for-each select="/书目"> <tr> <xsl:apply-templates select="书名"/> <xsl:apply-templates select="书籍编号"/> <xsl:apply-templates select="作者"/> <xsl:apply-templates select="单价"/> <xsl:apply-templates select="出版社信息"/> </tr> </xsl:for-each> </table> <table border="1"> <tr>管理员信息</tr> <tr> <td>编号</td> <td>姓名</td> <td>联系</td> <td>管理范围</td> </tr> <xsl:for-each select="/管理员信息"> <tr> <xsl:apply-templates select="编号"/> <xsl:apply-templates select="姓名"/> <xsl:apply-templates select="联系"/> <xsl:apply-templates select="管理范围"/> </tr> </xsl:for-each> </table> </table> </body> </html> </xsl:template> <xsl:template match="/书名"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/书籍编号"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/作者"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/单价"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/出版社信息"> <td> <xsl:value-of select="/出版社信息/名称"/> <xsl:value-of select="/出版社信息/地点"/> <xsl:value-of select="/出版社信息/标志"/> </td> </xsl:template> <xsl:template match="/编号"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/姓名"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/联系"> <td> <xsl:value-of select="."/> </td> </xsl:template> <xsl:template match="/管理范围"> <td> <xsl:value-of select="."/> </td> </xsl:template></xsl:stylesheet><?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http:/www.w3.org/1999/XSL/Transform"> <?xsl-stylesheet herf="xsl_file.xsl" type="text/xsl"?> <xsl:template match="/"> <html> <title>图书馆</title> <body bgcolor="#FF66CC"> <table border="1" align="center"> <head>图书馆</head> <tr>图书馆基本信息</tr> <td>名字</td> <td>地点</td> <td>开放时间</td> </table> <table border="1" align="center"> <tr> <td>书名</td> <td>书籍编号</td> <td>作者</td> <td>单价</td> </tr> <!-<xsl:for-each select="/书目"><tr><xsl:apply-templates select="/书名"/><xsl:apply-templates select="/书籍编号"/><xsl:apply-templates select="/作者"/><xsl:apply-templates select="/单价"/></tr></xsl:for-each>-> <tr> <xsl:apply-templates select="图书馆/书目"/> </tr> </table> <table border="1" align="center"> <tr>管理员信息</tr> <tr> <td>编号</td> <td>姓名</td> <td>联系方式</td> <td>管理范围</td> </tr> <xsl:apply-templates select="图书馆/管理员信息"/> </table> </body> </html> <!-</xsl:template><xsl:template match="书名/*"><td><xsl:apply-templates select="."/></td></xsl:template><xsl:template match="书籍编号/*"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="作者/*"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="单价/*"><td><xsl:value-of select="."/></td>-> </xsl:template> <xsl:template match="/图书馆基本信息"> <tr> <xsl:apply-templates select="./*"/> </tr> </xsl:template> <xsl:template match="图书馆/图书馆基本信息"> <td> <xsl:value-of select="./图书馆名字"/> </td> <td> <xsl:value-of select="./图书馆地点"/> </td> <td> <xsl:value-of select="./开放时间"/> </td> </xsl:template> <xsl:template match="/管理员信息"> <tr> <xsl:apply-templates select="./*"/> </tr> </xsl:template> <xsl:template match="图书馆/书目"> <td> <xsl:value-of select="./书名"/> </td> <td> <xsl:value-of select="./书籍编号"/> </td> <td> <xsl:value-of select="./作者"/> </td> <td> <xsl:value-of select="./单价"/> </td> <tr/> </xsl:template> <xsl:template match="图书馆/管理员信息"> <td> <xsl:value-of select="./编号"/> </td> <td> <xsl:value-of select="./姓名"/> </td> <td> <xsl:value-of select="./联系方式"/> </td> <td> <xsl:value-of select="./管理范围"/> </td> <tr/> </xsl:template></xsl:stylesheet>5.3 DTD关联文件<!ELEMENT 图书馆 (书目*,管理员信息*)><!ELEMENT 书目 (书名,书籍编号,作者,单价,出版社信息,入库信息)><!ELEMENT 书名 (#PCDATA)><!ELEMENT 书籍编号 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 单价 (#PCDATA)><!ELEMENT 出版社信息 (名称,地点,标志?,联系方式)><!ELEMENT 名称 (#PCDATA)><!ELEMENT 地点 (#PCDATA)><!ELEMENT 标志 ANY><!ELEMENT 联系方式 (电话,网址,传真,email?)><!ELEMENT 电话 (#PCDATA)><!ELEMENT 网址 (#PCDATA)><!ELEMENT 传真 (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT 入库信息 (入管时间,入管数量,经办人)><!ELEMENT 入管时间 (#PCDATA)><!ELEMENT 入管数量 (#PCDATA)><!ELEMENT 经办人 (#PCDATA)><!ELEMENT 管理员信息 (编号,姓名,联系,管理范围)><!ELEMENT 编号 (#PCDATA)><!ELEMENT 姓名 (#PCDATA)><!ELEMENT 联系 (#PCDATA)><!ELEMENT 管理范围 (#PCDATA)><!ATTLIST 单价 单位 CDATA "元"><!ATTLIST 联系 固定电话 CDATA #REQUIRED><!ATTLIST 联系 手机 CDATA #REQUIRED>5.4 Java程序源代码import javax.xml.parsers.*;import org.xml.sax.helpers.*;import org.xml.sax.*;import java.io.*;import org.w3c.dom.*;import java.util.Scanner;public class TestValidate public static void main(String args) String fileName=null; try Scanner reader=new Scanner(System.in); System.out.print("请输入要验证有效性的XML文件的名字:"); fileName=reader.nextLine(); DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); factory.setValidating(true); DocumentBuilder domParser= factory.newDocumentBuilder(); MyHandler handler=new MyHandler(); domParser.setErrorHandler(handler); Document document=domParser.parse(new File(fileName) ; if(handler.errorMessage=null) System.out.println(fileName+"文件是有效的"); else System.out.println(fileName+"文件不是有效的"); catch(Exception e)

    注意事项

    本文(XML技术报告面向图书管理信息的XML程序设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开