实验一
(1)通过本实验,使学生能够熟悉XML文档编辑、解析、浏览工具。
(2)掌握XML文档的基本结构和基本语法。
(3)能够得到格式良好的XML文档。
配置有windows记事本、写字板 或 XMLSpy开发环境的计算机设备。
(1)XML文档的基本结构
(2)XML元素定义不能交叉,必须完全嵌套或不完全不嵌套
1、熟悉XMLSpy;
2、创建一个不需要DTD验证的XMLDocument,验证其是否正确:
(1)用记事本创建以下“图书信息”的XML文件(book.xml)。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这是一个用XML描述的例子 -->
<bookcase>
<book type="教育">
<b-name>XML实用培训教程</b-name>
<author>
<name>张健飞</name>
<E-mail>zjf@163.com</E-mail>
</author>
<price>27元</price>
<publishing-house>
<p-name>科学出版社</p-name>
<address>北京东皇城根北街16号</address>
<zipcode>100717</zipcode>
<E-mail>yanmc@bhp.com.cn</E-mail>
</publishing-house>
</book>
<book type="科技">
<b-name> XML网页制作彻底研究</b-name>
<author>
<name>陈会安</name>
<E-mail>cha@163.com</E-mail>
</author>
<price>47元</price>
<publishing-house>
<p-name>中国铁道出版社</p-name>
<address>北京市宣武区右安门西街8号</address>
<zipcode>100054</zipcode>
<E-mail>bjb@tqbooks.com.cn</E-mail>
</publishing-house>
</book>
</bookcase>
(2)在XMLSpy中输入上述“图书信息”XML文件,然后验证其是否正确。
方法1:从记事本中将上述内容拷贝入XMLSpy中.
方法2:逐步输入,注意XMLSpy中对XML元素标记的补全功能(即开始标记输入完毕后,XMLSpy会自动将结束标记补在输入点之后)。
(4)在浏览器(如IE)中打开“book.xml”文件,观察其显示,并反复进行元素的打开、折叠操作,理解XML元素嵌套的含义。
3. 在XMLSpy中编写“person.xml”文件并进行验证,要求该文件中包括五个人(Person)的相关信息,相关信息包括:性别(作为Person的属性)、姓名、年龄、地址(含有省、市、街道和邮编4个子元素)、电话号码、e-mail地址。
<?xml version="1.0" encoding="UTF-8"?>
<Persons>
<person sex="男">
<name>小黑</name>
<age>18</age>
<address>
<province>河南省</province>
<city>郑州市</city>
<street>文化路街道</street>
<zip-code>450000</zip-code>
</address>
<telephonenumber>18888888888</telephonenumber>
<e-mail>66667777@qq.com</e-mail>
</person>
<person sex="女">
<name>小红</name>
<age>17</age>
<address>
<province>陕西省</province>
<city>西安市</city>
<street>汉城街道</street>
<zip-code>710000</zip-code>
</address>
<telephonenumber>17777777777</telephonenumber>
<e-mail>55556666@qq.com</e-mail>
</person>
<person sex="男">
<name>小明</name>
<age>22</age>
<address>
<province>湖北省</province>
<city>武汉市</city>
<street>金银湖街道</street>
<zip-code>430000</zip-code>
</address>
<telephonenumber>13263637878</telephonenumber>
<e-mail>77778888@qq.com</e-mail>
</person>
<person sex="女">
<name>小紫</name>
<age>19</age>
<address>
<province>山西省</province>
<city>太原市</city>
<street>桥东街道</street>
<zip-code>030000</zip-code>
</address>
<telephonenumber>15566669999</telephonenumber>
<e-mail>32152659@qq.com</e-mail>
</person>
<person sex="男">
<name>李某某</name>
<age>20</age>
<address>
<province>河南省</province>
<city>某某市</city>
<street>某某大街</street>
<zip-code>454566</zip-code>
</address>
<telephonenumber>17355669988</telephonenumber>
<e-mail>26068823@qq.com</e-mail>
</person>
</Persons>
4. XML文档改错:(红字为错误,蓝色加粗斜体为修改正确部分)
(1)
<!--这是一个记录书籍信息的XML文档-->
<?xml version="1.0" encoding="gb2312"?>
<?xml version="1.0" encoding="gb2312"?>
<!--这是一个记录书籍信息的XML文档-->
注释不能出现在XML声明之前,XML声明必须是文档最前面的部分
<Books>
<book>
<b:title id="book" xmlns:b="http://www.site.org/book" xmlns:p="http://www.site.org/people">
Java Web开发详解
</b:title>
<isbn>7-121-02396-2</isbn>
<author>
<name>孙鑫</name>
<p:title id="people">教师</p:title>
</author>
<publisher>电子工业出版社</publisher>
<publishdate>2006年4月</publishdate>
<edition>第一版</edition>
<price>¥99.00</price>
<brief>
<![CDATA[
本书共分四部分,展示了Java Web开发中各种技术的应用。<配套光盘包括"教学视频"&'本书示例';>
]]>
</brief>
<anythings/>
</Book>
</book> 应该对应上面为小写
<book>
<title id="book">XML基础教程</title>
<isbn>7-302-12591-0</isbn>
<author>
<name>耿祥义</name>
<title id="people">教师</title>
</author>
<publisher>清华大学出版社</publisher>
<publishdate>2006年4月</publishdate>
<edition>第一版</edition>
<price>¥31.00</price>
<brief>
<![CDATA[
本书是高等院校参考教材。
]]>
</brief>
<anythings/>
</book>
</Books>
(2)
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<Book>
<书名>How to Purse Happiness</书名>前后需对应
<作者>
<名>Adair</名>
<姓>Lana</姓>
</作者>
< price >8.99</price >
</Book>
<Book>
<书名>The Confidence Man</书名>前后需对应
<作者>
<名>Herman</名>
<姓>Melville</姓>
</作者>
<price>11.99</价格>应该修改为</price>
</Book>
</书架>
(3)
<?xml version="1.0" encoding="UTF-8"?>
<路标>
<标记1>&你好&</标记1>
<标记1>你好</标记1> 字符&非法
<标记2>"注意观察"</标记2>
<标记3>限高30米</标记3>
</路标>
(1)XML文件中的名字空间有什么用处?
XML命名空间提供了避免元素名称冲突的方法。
因为XML的元素名都是自己定义的,在大型XML文档中,可能会出现标识名相同而代表意义不相同的状况。命名空间通过在元素名前增加独特的标识符,制定元素名的有效空间,来区分两个同名元素。
(2)XML的标记与关系数据库中的列名有什么区别?
在XML中,标记被用来在XML中描述元素,标记和元素具有相同的名称。关系数据库是结构化的数据存储,XML是半结构化的。区别就在于,结构化的关系表中,如果你有个字段的数据是null,那么这个位置也要空着,保证关系结构。而XML文档中你只需要添加有数据内容的节点(标签)就行了。