实验三 在XML文档中使用Schema.docx
- 文档编号:11051560
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:14
- 大小:385.09KB
实验三 在XML文档中使用Schema.docx
《实验三 在XML文档中使用Schema.docx》由会员分享,可在线阅读,更多相关《实验三 在XML文档中使用Schema.docx(14页珍藏版)》请在冰豆网上搜索。
实验三在XML文档中使用Schema
实验三在XML文档中使用Schema
一、实验目的
通过本实验,使学生能够了解并掌握XMLSchema的定义方法及其用途
(1)了解并掌握Schema的基本结构
(2)了解并掌握Schema的数据类型
(3)了解并掌握Schema的元素声明
(4)了解并掌握Schema的属性声明
二、实验条件
配置有windows记事本、写字板或XMLSpy开发环境的计算机设备。
三、实验原理及相关知识
XMLSchema的语法规范
四、实验内容及步骤
1、对以下“book.xml”进行Schema定义(设Schema文件名为“bookinfo.xsd”)
xmlversion="1.0"encoding="UTF-8"?
>
--这是一个用XML描述的例子-->
(1)在XMLSpy中新建XMLSchema文档“bookinfo.xsd”,其内容如下:
XMLSchema定义头部:
xmlversion="1.0"encoding="UTF-8"?
>
schemaxmlns: xs="http: //www.w3.org/2001/XMLSchema"> […………]
schema>
(2)定义bookcase元素(添加在[…………]处)
elementname="bookcase"> complexType> sequenceminOccurs="1"maxOccurs="unbounded"> elementname="book"type="bookType"/> sequence> complexType> element> (3)定义bookType类型(里面引用定义authorType,pub-houseType,添加在bookcase元素定义之后) complexTypename="bookType"> sequence> elementname="b-name"type="xs: string"/> elementname="author"type="authorType"/> elementname="price"type="xs: string"/> elementname="publishing-house"type="pub-houseType"/> sequence> attributename="type"> simpleType> restrictionbase="xs: string"> enumerationvalue="科技"/> enumerationvalue="教育"/> restriction> simpleType> attribute> complexType> (4)定义authorType及pub-houseType元素类型(添加在bookType类型定义之后) complexTypename="authorType"> sequence> elementname="name"type="xs: string"/> elementname="E-mail"type="xs: string"/> sequence> complexType> complexTypename="pub-houseType"> sequence> elementname="p-name"type="xs: string"/> elementname="address"type="xs: string"/> elementname="zipcode"type="xs: string"/> elementname="E-mail"type="xs: string"/> sequence> complexType> (5)在XMLSpy中创建一个基于“bookinfo.xsd”的XML文件“book-onschema.xml”。 (6)在IE中打开XMLSchema文件“bookinfo.xsd”和带有Schema定义的“book-onschema.xml”,观察带有Schema的XML文件显示。 2、教材P91习题6,并根据创建的XMLSchema文档对XML进行有效性验证。 Schema文档 xmlversion="1.0"encoding="UTF-8"? > schemaxmlns: xs="http: //www.w3.org/2001/XMLSchema"elementFormDefault="qualified"attributeFormDefault="unqualified"> elementname="order"> complexType> sequence> elementname="orderItem"minOccurs="0"maxOccurs="unbounded"> complexType> sequence> elementname="id"> simpleType> restrictionbase="xs: string"> patternvalue="\d{1}-\d{4}-\d{4}-\d{1}"/> restriction> simpleType> element> elementname="customer"type="xs: string"minOccurs="0"maxOccurs="unbounded"/> elementname="quantity"type="xs: string"/> sequence> complexType> element> sequence> complexType> element> schema> 运行结果: XML文档 xmlversion="1.0"encoding="UTF-8"? > xsi="http: //www.w3.org/2001/XMLSchema-instance"xsi: noNamespaceSchemaLocation="file: ///C: /Users/Administrator/Desktop/order.xsd"> 运行结果: XML文档在IE中打开: 3、根据实验一中的“person.xml”文件,编写对应的“person.xsd”文件,并使用XMLSpy对“person.xsd”和“person.xml”进行有效性性验证,若有错误,按照提示进行修改。 Schema文档 xmlversion="1.0"encoding="UTF-8"? > schemaxmlns: xs="http: //www.w3.org/2001/XMLSchema"elementFormDefault="qualified"attributeFormDefault="unqualified"> elementname="personcase"> complexType> sequence> elementname="person"minOccurs="1"maxOccurs="unbounded"> complexType> sequence> elementname="name"type="xs: string"/> elementname="age"type="xs: string"/> elementname="address"> complexType> sequence> elementname="province"type="xs: string"/> elementname="city"type="xs: string"/> elementname="street"type="xs: string"/> elementname="postcode"type="xs: string"/> sequence> complexType> element> elementname="phone"type="xs: string"/> elementname="e-mail"type="xs: string"/> sequence> attributename="sex"type="xs: string"/> complexType> element> sequence> complexType> element> schema> 运行结果: XML文档在IE在打开: 五、思考题及其它 (1)Schema与DTD的共同点和区别是什么? 答: XML从SGML中继承了DTD,并用它来定义内容的模型,验证和组织元素,但它存在一定的局限性。 而Schema完全克服了这些弱点,使得基于Web的应用系统交换XML数据更为容易。 DTD不遵守XML语法,而Schema完全基于XML语法,不需要再学习特殊的语法。 DTD不可扩展; DTD不支持命名空间的应用; DTD没有提供强大的数据类型支持,只能表示很简单的数据类型,而Schema大大扩充了数据类型,支持booleans、numbers、datesandtimes、integers、decimalnumbers和realnumbers等; Schema能用处理XML文档的工具处理,而不需要特殊的工具; Schema支持原型,也就是元素的继承。 Schema支持属性组。 我们一般声明一些公共属性,然后可以应用于所有的元素,属性组允许把元素、属性关系放于外部定义、组合; 开放性。 原来的DTD只能有一个DTD应用于一个XML文档,现在可以有多个Schema运用于一个XML文档。 (2)Schema符合XML语法有什么优点? 答: XMLSchema直接借助XML本身的特性,用XML语法来定义文档的模式,使得XML文档及其模式定义实现了从内到外的统一。 而且,XMLSchema本身是一种XML文档,可被现有的XML编辑制作工具所编辑,被XML语法分析器所解析,被XML应用系统所利用。 XMLSchema不仅支持规范中定义的数据类型,而且可以利用XMLSchema创建自己的数据类型,并且可以基于其他数据类型派生出新的数据类型。 具有良好的可扩展性。 作为一种XMLAPI,DOM和SAX只是对XML实例文档有效,对于DTD则无能为力,不可能通过DOM或SAX来判定在DTD中一个元素的属性类型或者某个元素的子元素允许出现的次数。 而XMLSchema则不存在这个问题。 XMLSchema利用元素的内容和属性来定义XML文档的整体结构。 比DTD提供的用来约束XML文档中元素的使用的完整机制更具规范性。 利用XMLSchema,我们能够书写XML文档,验证文档的合法性。 通过映射机制,还可以将不同的XMLSchema进行转换,以实现更高层次的数据交换。 六、实验总结 本次实验告诉我们在使用XMLSchema时,应该注意一些什么问题,如何才能正确的书写XMLSchema,在书写XMLSchema出错的时候如何根据给出的提示正确的编写程序,并调试成功。 通过反复的练习使我们对XMLSchema有了比较深刻的认识,这是在课堂上学不到的,实验对我们更好的巩固已学知识非常重要。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验三 在XML文档中使用Schema 实验 XML 文档 使用 Schema