资源描述
XML与电子商务应用上机实验指导书
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
上机实验指导书
课程名称: XML与电子商务应用
总学时:48
实验学时:16
指导教师:刘平峰
实验名称:
(一) HTML标记语言与网页设计(4学时)
(二) XML标记语言与内容组织(6学时)
(三) XML文档的格式化显示与转换(6学时)
实验一:HTML标记语言与网页设计
1.实验目的:
熟悉常用的HTML标记,能读懂较为复杂的HTML源代码并能使用HTML标记设计网页。
2.实验内容:
分为两个部分,第一部分是验证型实验内容,第二部分是设计型实验内容。
(1)验证型实验内容
参考课件示例,在记事本中编写如下代码并查看显示效果:
①使用下面标记编写HTML源代码:〈html〉、〈head〉、〈title〉、〈body>、<br>、〈hr>、〈a〉、<img>。
②使用下面列标记绘制表格:<table>、<tr〉、<td>。
③使用下面标记编写简单的表单:〈form〉、〈imput>、〈textarea〉、<select〉.
④使用下面标记结合上面的内容编写框架式的HTML:<frameset〉、〈frame〉。
⑤使用下面标记在网页中嵌入Javascript代码:〈script〉。
(2)设计型实验内容
图1是一个浏览器上显示的一个html文件的截屏图,看图写出该html文档(注意图表格中的文本定位,参考答案见附件一)。
图1 HTML代码显示效果截图
3.预习要求及参考书目:
要求预习课件第二章的内容,编写HTML文档实例参考课件“Html标记示例”目录下的所有示例文件。
4.实验步骤:
(1) 在Windows环境中,打开记事本和浏览器准备好工作环境。
(2) 在记事本中输入实验内容并进行适当的扩展,完成后将文件保存为*。html文件。
(3) 在浏览器中打开刚才所保存的*。html文件并查看显示效果。如不能正常显示,进行查错调试;如能正常显示总结上述标记的作用.
5.实验报告要求
要求在实验课程开始前撰写预习内容,实验课程结束当天撰写实验过程中设计的网页代码、以及关于实验过程中错误查排和体会的实验小结。
实验二:XML标记语言与内容组织
1.实验目的:
熟悉XML的声明、元素、处理指示和字符数据,能读懂较为复杂的XML源代码并能使用通过自定义XML标记描述结构化的、层次化的数据;理解DTD以及Schema所起的作用,并能熟练掌握在DTD与Schema中定义元素和子元素和属性的方法和格式,理解它们之间的异同,并对Schema在数据表示上的优势有一个明确的认识;掌握名字空间的用法,XML文档和DTD、Schema文档之间的关联方法.本实验着重点放在语法训练和综合运用上。利用DTD和Schema定义元素、子元素和属性,编写XML文档并验证其有效性。
2.实验内容:
分为两个部分,第一部分是验证型实验内容,第二部分是设计型实验内容。
(1)验证型实验内容
重复教材上关于图书的DTD文档、Schema文档和XML文档的内容。即针对图书的相关信息,包括书名、图书所属分类、作者、出版商、出版日期、印刷次数(具体内容可自己确定),分别写出相应的DTD(要求DTD文档分为内部DTD和外部DTD两种方式分别编写)与Schema文档,然后用xml描述自己拥有的图书的信息,并将xml文档分别与DTD文档和Schema文档关联,打开xml文档并观看是否能够通过有效性检查和显示结果。
(2)设计型实验内容
图2是一公司出库单的内容,针对出库单用Schema定义描述出库单信息的业务规范,然后遵从该规范写出图中所示信息的xml文档,与Schema文档关联,打开xml文档并观看是否能够通过有效性检查和显示结果(参考答案见附件二)。
图2 某公司出库单信息
3.预习要求及参考书目:
要求预习课件第3章、第4章和第5章的内容,并在W3C网站(http://www。w3.org/standards/xml/)和IBM网站(http://
4.实验步骤:
(1)在Windows环境中,打开xml编辑工具xmlSpy和浏览器准备好工作环境。
(2)采用内部DTD的方式描述图书信息。打开xmlSpy编辑工具新建xml文档,命名为book。xml,在第一行xml声明之后用DTD定义图书描述的规则,接着描述自己手中具体的图书信息,保存文档,根据xmlSpy的提示排除错误,最后在浏览器中打开book.xml查看显示结果。
(3)采用外部DTD方式描述图书信息.用xmlSpy编写图书的DTD文档并保存为book.dtd,再用xmlSpy根据DTD中关于图书描述的规范编写描述自己手中图书信息的xml文档,以外部DTD的方式引用事先编辑好的book。dtd文档,并将xml文档保存为book2.xml,根据xmlSpy的提示排除错误,最后在浏览器中打开book2.xml查看显示结果。
(4)采用Schema定义图书信息描述规范。用xmlSpy编写图书描述规范的schema文档并保存为book.xsd,再用xmlSpy根据book。xsd中关于图书描述的规范编写描述自己手中图书信息的xml文档,并与book.xsd相关联,将xml文档保存为book3.xml,根据xmlSpy的提示排除错误,最后在浏览器中打开book3。xml查看显示结果.
(5)采用Schema定义图2中出库单的描述规范.用xmlSpy编写出库单描述规范的schema文档并保存为checkout。xsd,再用xmlSpy根据checkout。xsd中关于出库单描述的规范编写描述图2中出库单实例信息的xml文档,并与checkout.xsd相关联,将xml文档保存为checkout。xml,根据xmlSpy的提示排除错误,最后在浏览器中打开checkout。xml查看显示结果.
5.实验报告要求
要求在实验课程开始前撰写预习内容,实验课程结束当天撰写实验过程中设计的DTD文档、Schema文档和XML文档、以及关于错误总结和体会的实验小结。
实验三: XML文档的格式化显示与转换
1.实验目的:
掌握如何通过CSS对xml文档中的数据进行显示的方法,理解CSS的基本语法规则。掌握如何通过XSL对xml文档中的数据进行显示和转换的方法,理解XSL中xPath概念,掌握XPath语法规则,通过该实验增进对xml中内容与显示分离的特点的了解.并对前面所学html的知识起到一个复习的作用。
2.实验内容:
实验内容分为两个部分,即CSS实验和XSL实验.
(1)CSS实验内容
针对实验二中编写的book.xml文档,写出显示该文档的CSS文档,要求对book。xml文档中的不同元素分别应用分类属性、字体属性、文本属性、颜色和背景属性。
(2)XSL实验内容
针对实验二中编写的checkout。xml文档,写出显示该文档的XSL文档,要求checkout.xml文档引用编写的XSL文档后能以图2中的显示效果显示(参考答案见附件三)。
3.预习要求及参考书目:
要求掌握课件上第6章、第7章的内容,复习课件第2章中html的相关知识.
4.实验步骤:
(1)在Windows环境中,打开xml编辑工具xmlSpy和浏览器准备好工作环境。
(2)在xmlSpy中打开book。xml,查看其中的元素信息,然后编写css文档并保存为book。css(若有错误根据xmlSpy的提示排错),然后在book。xml中引用book。css,在浏览器中打开book。xml文档查看显示结果。
(3)在xmlSpy中打开checkout.xml,查看其中的内容,然后编写XSL文档并保存为checkout.xml(若有错误根据xmlSpy的提示排错),然后在checkout.xml中引用checkout。xml,在浏览器中打开checkout。xml文档查看显示结果。
(4)总结在设计过程遇到的错误,体会在xsl文档中使用不同的匹配路径和方法,观察实验效果。
5.实验报告要求
要求实验课程开始前撰写预习内容,实验课程结束当天撰写实验过程中设计的CSS文档和XSL文档内容、以及关于错误排查和心得体会的实验小结。
附件一:HTML实验第二部分内容参考答案
〈html〉
<head>
〈/head〉
<body〉
<h1 align=”center”>将学习进行到底〈/h1>
〈hr size="5" width=”100%" align=”center” color="red”>
〈form action=”cgi—bin/process.pl" method=”post”>
<table width="80%” align=”center" border=1〉
<tr align=”center”〉〈th width="50%"〉学习选项</th〉<th>内容〈/th〉〈/tr>
<tr align=”center”〉〈td>学习关数〈/td〉
〈td〉
〈ol type=”1"〉
〈li/〉小试牛刀
〈li/〉成长烦恼
<li/〉钢铁意志
<li/>终成正果
</ol>
〈/td>
</tr〉
〈tr align="center"〉〈td〉学习人数〈/td〉
<td>
〈select name="view" size=”2” align=center〉
<option selected>一人</option>
〈option〉二人〈/option>
〈/select〉
〈/td>
</tr>
〈tr align=”center">〈td〉难易程度</td>
〈td>
〈input type=”radio" name="level" value=”1" checked/>初级
〈input type=”radio” name="level" value=”2”/>中级
〈input type="radio” name="level" value=”3”/>高级
〈/td>
〈/tr>
〈/table〉
<br〉
<table width="50%" align="center” border=0〉
<tr align="center"〉〈td〉用户ID:〈input type="text" name=”user"></td></tr>
<tr align=”center”〉<td>密 码:<input type=”password" name=”pwd”〉〈/td></tr〉
〈tr align=”center">〈td〉〈button name=”senddata" type=”submit"〉提交〈/button>
〈button name=”cleardata” type="reset”>清除</button〉〈/td>
〈/tr〉
</table〉
</form〉
〈/body〉
〈/html〉
附件二:XML标记语言与内容组织实验第二部分内容参考答案
〈?xml version="1。0" encoding=”UTF—8"?>
<xs:schema xmlns:xs=”http://www.w3。org/2001/XMLSchema" xmlns=”http://www.whut。 targetNamespace="http://www。whut.edu。cn/ieb/checkout” elementFormDefault="qualified” attributeFormDefault="unqualified”>
〈xs:element name="出库单系统"〉
<xs:complexType mixed=”false">
〈xs:sequence〉
<xs:element name=”出库单” type=”checkoutType" minOccurs=”0” maxOccurs=”unbounded"/>
</xs:sequence>
〈/xs:complexType>
</xs:element>
〈xs:complexType name="checkoutType" mixed="false”〉
〈xs:sequence〉
<xs:element name=”对应订单号” type="myNumType”/>
〈xs:element name="收货人联系信息” type=”contactType"/>
<xs:element name="运输信息" type="shipmentType”/〉
<xs:element name=”总金额” type=”positiveDecimalType"/〉
〈xs:element name=”商品信息" type=”goodsType”/〉
〈/xs:sequence〉
<xs:attribute name="单据号” type="myIDType"/〉
〈xs:attribute name="单据日期” type=”xs:date"/>
</xs:complexType〉
<xs:simpleType name=”myIDType">
<xs:restriction base="xs:ID”>
〈xs:pattern value="([0-9]|[a-z]|[A—Z]){3}—([0—9]|[a-z]|[A—Z]){6}”/>
〈/xs:restriction〉
〈/xs:simpleType〉
〈xs:simpleType name="myNumType”>
〈xs:restriction base=”xs:string"〉
<xs:pattern value=”([0-9]|[a—z]|[A-Z]){3}-([0—9]|[a-z]|[A—Z]){6}"/〉
</xs:restriction〉
</xs:simpleType>
<xs:complexType name=”contactType” mixed=”false"〉
<xs:sequence>
〈xs:element name=”客户" type=”nameStringType"/>
<xs:element name=”收货单位” type=”nameStringType"/>
<xs:element name="联系人" type="nameStringType”/〉
<xs:element name="联系电话” type="phoneType”/〉
〈/xs:sequence>
</xs:complexType>
〈xs:simpleType name=”phoneType”〉
〈xs:restriction base=”xs:string”〉
<xs:pattern value=”[0—9]{3,4}-[0-9]{7-9}”/〉
〈/xs:restriction〉
</xs:simpleType>
〈xs:complexType name="shipmentType" mixed=”false">
<xs:sequence>
<xs:element name="仓库" type=”nameStringType”/〉
〈xs:element name="发往地址” type="nameStringType"/>
<xs:element name=”运输方式" type=”transportType” default="公路运输”/〉
〈xs:element name=”运输车号” type="nameStringType”/〉
<xs:element name=”运输里程" type=”numStringType”/>
<xs:element name=”送货员” type=”nameStringType"/〉
〈xs:element name="司机" type=”nameStringType”/〉
〈/xs:sequence>
〈/xs:complexType>
〈xs:simpleType name="transportType”〉
〈xs:restriction base=”xs:string”〉
<xs:enumeration value="公路运输"/>
<xs:enumeration value="铁路运输"/〉
〈/xs:restriction>
〈/xs:simpleType〉
〈xs:complexType name=”goodsType" mixed="false”〉
<xs:sequence〉
〈xs:element name=”商品明细" type="itemType" maxOccurs=”unbounded"/>
</xs:sequence〉
〈/xs:complexType>
<xs:complexType name="itemType” mixed="false">
<xs:sequence>
<xs:element name="商品编码" type=”xs:ID"/>
<xs:element name=”名称规格" type="nameStringType”/〉
<xs:element name="单位" type=”nameStringType”/〉
〈xs:element name=”数量” type=”xs:positiveInteger"/〉
<xs:element name=”单价” type=”positiveDecimalType"/>
〈xs:element name=”金额” type=”positiveDecimalType”/〉
〈/xs:sequence〉
</xs:complexType〉
<xs:simpleType name="positiveDecimalType">
<xs:restriction base="xs:decimal”>
<xs:minExclusive value="0”/〉
〈/xs:restriction>
</xs:simpleType>
<xs:simpleType name="nameStringType”>
<xs:restriction base="xs:string”〉
〈xs:minLength value="1”/〉
〈/xs:restriction>
〈/xs:simpleType>
〈xs:simpleType name="numStringType"〉
〈xs:restriction base=”xs:string”〉
<xs:pattern value=”[0—9]+"/〉
〈/xs:restriction>
〈/xs:simpleType〉
</xs:schema〉
附件三:XML文档的格式化显示与转换实验第二部分内容参考答案
〈?xml version=”1。0” encoding=”gb2312”?>
<xsl:stylesheet xmlns:xsl="http://www.w3。org/TR/WD-xsl”>
<xsl:template match="/">
<html>
〈head〉
<title>出库单信息〈/title〉
〈/head>
<body〉
<form action=”checkorder。do” method="post”〉
<h3 align="center”>出库单信息</h3>
〈hr color=”red” width=”100%” size="5"/〉
〈xsl:apply-templates select="出库单系统/出库单”/>
〈p align=”center"〉
请输入要查询出库单的最低限额: 〈input type=”text" value="10000"></input〉
〈/p〉
〈table align="center”〉
〈tr〉
〈td>〈input type="submit” name="提交” value="提交查询"/〉〈/td〉
<td〉<input type="reset" name="重置” value=”重置查询”/〉</td>
</tr〉
</table>
</form>
</body〉
</html>
〈/xsl:template〉
〈xsl:template match="出库单”>
〈xsl:if test="总金额[value() $ge$ 10000]”〉
〈table border="1” cellspacing=”0” align="center" width=”90%”〉
〈tr align=”center”〉
<td〉单据号:〈xsl:value—of select=”@单据号"/〉</td〉
〈td>单据日期:〈xsl:value-of select=”@单据日期”/></td〉
〈td>对应订单号:〈xsl:value-of select="对应订单号"/〉</td>
〈/tr〉
<tr align=”center”>
〈td〉仓库:〈xsl:value—of select="运输信息/仓库"/〉</td〉
<td>客户:〈xsl:value-of select="收货人联系信息/客户"/></td>
<td>收货单位:〈xsl:value-of select=”收货人联系信息/收货单位"/〉〈/td>
</tr〉
〈tr align="center">
<td〉联系人:〈xsl:value-of select=”收货人联系信息/联系人"/></td>
<td>联系电话:〈xsl:value-of select="收货人联系信息/联系电话"/〉</td>
<td〉发往地址:<xsl:value—of select="运输信息/发往地址"/〉〈/td〉
</tr〉
〈tr align=”center”〉
<td>运输方式:<xsl:value-of select=”运输信息/运输方式”/〉〈/td〉
〈td〉运输车号:<xsl:value-of select="运输信息/运输车号"/〉</td>
<td>运输里程:〈xsl:value—of select="运输信息/运输里程”/>〈/td〉
〈/tr>
<tr align="center”〉
<td>送货员:〈xsl:value—of select="运输信息/送货员”/〉</td>
〈td〉司机:<xsl:value—of select="运输信息/司机"/〉〈/td>
〈td>总金额:<xsl:value-of select="总金额”/〉〈/td〉
〈/tr〉
<tr align="center”>
〈td colspan="3"><xsl:apply-templates select=”商品信息”/〉</td〉
</tr〉
〈/table>
〈/xsl:if>
〈br/〉
〈/xsl:template>
<xsl:template match="商品信息"〉
<table border=”1" cellspacing="0" align="center" width="100%”〉
<tr align=”center">
<th>商品编码</th>
<th〉名称规格〈/th〉
<th〉单位</th>
〈th〉数量</th〉
<th>单价</th>
〈th〉金额〈/th〉
</tr〉
〈xsl:for-each select=”商品明细">
<tr align="center">
〈xsl:if test="金额[value() $ge$ 10000]"〉
〈xsl:attribute name=”bgcolor">yellow</xsl:attribute〉
〈/xsl:if〉
<td〉<xsl:value—of select=”商品编码”/>〈/td>
〈td><xsl:value-of select=”名称规格"/>〈/td>
<td〉<xsl:value-of select="单位"/〉</td>
<td align=”right"〉〈xsl:value-of select=”数量”/〉</td>
<td align="right”〉〈xsl:value—of select="金额”/〉〈/td>
<td align="right"><xsl:value-of select=”金额"/>〈/td>
〈/tr〉
</xsl:for—each〉
</table〉
</xsl:template〉
〈/xsl:stylesheet>
14
展开阅读全文