_实验三:XML schema语法练习
XMLSchema的基本语法(转)

XMLSchema的基本语法(转)XSDL(XML Schema定义语⾔)由元素、属性、命名空间和XML⽂档种的其他节点构成的。
⼀、XSD中的元素XSD⽂档⾄少要包含:schema根元素和XML模式命名空间的定义、元素定义。
1、schema根元素语法如下:…</xsd:schema>在XSD中必须定义⼀个且只能定义⼀个schema根元素。
根元素中包括模式的约束、XML模式命名空间的定义,其他命名空间的定义、版本信息、语⾔信息和其他⼀些属性。
2、元素语法如下:<xsd:element name=”user” type=”xsd:string” />XSD中的元素是利⽤element标识符来声明的。
其中name属性是元素的名字,type属性是元素值的类型,在这⾥可以是XML Schema中内置的数据类型或其他类型。
例⼦:<xsd:element name=”user” type=”xsd:string” /></xsd:schema>以上⽂档对应的有效XML⽂档如下:<?xml version=”1.0”?><user>string</user>在元素的定义中还有2个属性:minOccurs和maxOccurs。
其中minOccurs定义了该元素在⽗元素中出现的最少次数(默认为1,值为⼤于等于0的整数),maxOccurs定义了该元素在⽗元素中出现的最多次数(默认为1,值为⼤于等于0的整数)。
在maxOccurs中可以把值设置为unbounded,表⽰对元素出现的最多次数没有限制。
例⼦:<xsd:element name=”user” type=”xsd:string” minOccurs=”0” maxOccurs=”unbounded” /></xsd:schema>表⽰为元素user的类型为string,出现的次数最少为0(也就是可选),最多不限制。
2012下《XML及其应用》教学日历-09(2)

胡芳
三
3-4
XMLSPY编辑器使用
胡芳
四
3-4
XML文档结构、基本语法
胡芳
2
一
1-2
XML文档练习
胡芳
三
3-4
基本语法、创建格式良好的XML文档
胡芳
四
3-4
实验一:XML文件的编辑
胡芳
3
一
1-2
DTD概述、元素声明、实体声明
胡芳
三
3-4
DTD练习
胡芳
四
3-4
DTD中的属性、标记声明
胡芳
4
一
1-2
实验二:DTD实验
胡芳
三
3-4
XML命名空间、XML Schema、数据类型
胡芳
四
3-4
XML Schema练习
胡芳
5
一
1-2
元素声明、属性声明
胡芳
三
3-4
实验三:XML Schema实验
胡芳
四
3-4
使用CSS显示XML
胡芳
6
一
1-2
实验四:CSS显示XML
胡芳
三
3-4
使用XSL显示XML
湖北中医学院教学日历
2012至2013学年,第1学期
医学信息工程专业(方向)09级2班课程名称:XML及其应用
总学时:60(理论:36实验:24)采用何种教材:XML实用技术教程,清华大学出版社,顾兵,2007年1月
听课人数:47实习组数每组人数
周次
星期
节次
讲课
实验实习
内容
教师
内容
教师
备注
实验3 在XML文档中使用Schema

实验3 在XML文档中使用Schema【开发语言及实现平台或实验环境】配置有windows记事本、写字板或XMLSpy 2006开发环境的计算机设备【实验目的】(1)通过本实验,使学生能够了解并掌握XML Schema的定义方法及其用途(2)了解并掌握Schema的基本结构(3)了解并掌握Schema的数据类型(4)了解并掌握Schema的元素声明(5)了解并掌握Schema的属性声明(6)了解并掌握XMLSpy中基于Schema的XML文件输入【实验要求】(1)能参照示例XML文件进行对应的XML Schema定义(2)能利用Schema对XML文件进行验证【实验原理】一 XML DTD是对XML结构进行定义的另一种机制二XML DTD本身符合XML语法【实验步骤】<?xml version="1.0" encoding="UTF-8"?><!--W3C Schema generated by XMLSpy v2007 ()--><xs:schema xmlns:xs="/2001/XMLSchema"> <xs:annotation><xs:documentation>JinYanZhong XML File Schema Test</xs:documentation></xs:annotation>[]</xs:schema>(3)定义bookcaseType类型(添加在[]处)<xs:element name="bookcase" type="bookcaseType"/><xs:attribute name="type"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="科技"/><xs:enumeration value="教育"/></xs:restriction></xs:simpleType></xs:attribute>(4)定义bookcase元素(紧随bookcaseType类型定义之后)<xs:complexType name="bookcaseType"><xs:sequence><xs:element name="book" type="bookType"/></xs:sequence></xs:complexType>(5)定义bookType元素类型(里面引用定义authorType, pub-houseType)<xs:complexType name="bookType"><xs:sequence><xs:element name="b-name" type="xs:string"/><xs:element name="author" type="authorType"/><xs:element name="price" type="xs:string"/><xs:element name="publishing-house" type="pub-houseType"/> </xs:sequence></xs:complexType>(6)定义authorType及pub-houseType元素类型<xs:complexType name="authorType"><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="E-mail" type="xs:string"/></xs:sequence></xs:complexType><xs:complexType name="pub-houseType"><xs:sequence><xs:element name="p-name" type="xs:string"/><xs:element name="address" type="xs:string"/><xs:element name="zipcode" type="xs:string"/><xs:element name="E-mail" type="xs:string"/></xs:sequence></xs:complexType>(7)在XMLSpy中新创建一个基于“个人信息.xsd”的XML文件,体会该方法的方便快捷(8)在IE中打开带有Schema定义的“个人信息.xsd”,观察符合DTD定义及不符合Schema定义的XML文件显示(带Schema定义的XML文件头部如下所示)。
实验三基于XML-Schema实现XML文档的有效性验证

淮海工学院计算机工程学院实验报告书课程名:《 XML开发技术》题目:实验三基于XML Schema实现XML文档的有效性验证班级:姓名:学号:一.实验目的(1)掌握XML Schema的文档结构和语法规则,学会定义simpleType、complexType数据类型,并能利用这些数据类型定义元素;(2)掌握XML Schema和XML文档关联的方法;(3)理解利用XML Schema对XML文档进行有效性验证的原理。
二.实验内容(1)编写良构的XML文档stuInfo.xml/teachInfo.xml,来描述学生/教师的信息。
(2)编写Schema文档stuSchema.xsd/teachSchema.xsd,来约束stuInfo.xml/teachInfo.xml的结构三.实验步骤(1)在网络没有联通的情况下,打开XMLSPY2008环境;(2)编写Schema文档;(3)编写XML文档,并将其关联于已经编写好的Schema文档;(4)验证XML文档的良构性(Well-formed)和有效性(Validation)四.实验结果通过代码和运行界面来反映实验结果1.先新建一个xsd的文件命名为stuSchema<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="students" type="studentsType"/><xs:complexType name="studentsType"><xs:sequence><xs:element name="student" type="studentType"maxOccurs="40"/></xs:sequence></xs:complexType><xs:complexType name="studentType"><xs:sequence><xs:element name="sno" type="xs:string"/><xs:element name="sname" type="xs:string"/><xs:element name="sclass" type="xs:string"/><xs:element name="birthday" type="xs:date"/></xs:sequence><xs:attribute name="sex" type="xs:string"/><xs:attribute name="email" type="xs:string"/><xs:attribute name="cellphone" type="xs:string"/> </xs:complexType></xs:schema>2.再建一个xml,命名为stuSchema<?xml version="1.0" encoding="UTF-8"?><students xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="stuSchema.xsd"><student sex="男" email="zhangsan@" cellphone="1324132553"> <sno>1001</sno><sname>张三</sname><sclass>软件091</sclass><birthday>1991-07-03</birthday></student><student sex="女" email="lisi@" cellphone="13241wrr32553"> <sno>1004 </sno><sname>李四</sname><sclass>软件092</sclass><birthday>1992-03-03</birthday></student><student sex="女" email="wangwu@" cellphone="13241wrr32553"> <sno>1003 </sno><sname>王五</sname><sclass>软件091</sclass><birthday>1992-03-03</birthday></student></students>这是xsd的一种表格的显示方式,如下图现在验证XML文档的良构性(Well-formed)把软件092下的日期1992-03-03改成1992-03-32发现其良构性没什么问题我们再检查一下其有效性(Validation)发现有效性是有误的因为日期不可能有32号出现诸如此类的毛病再列举一二观察图中蓝色部分这些良构性都没问题,有效性都有欠缺。
实验三 使用模式文档定义XML-网上订单

实验3 使用模式文档定义--网上订单一、实验目的:1.掌握XML模式文档的基本语法2.学会使用模式描述数据二、实验内容和步骤:编写XML Schema文档替换实验2中网上订单DTD文档,并验证订单XML文档。
(1)订货时间和发货时间用日期时间型。
(2)订单号用11位数字字符型,使用正则表达式定义。
(3)“书名”一列中的“图书编号”使用ID类型的属性描述。
(4)定购数量用整型。
(5)所有的价格用实型,并精确到小数点后的两位。
(6)付款方式、发货方式、发货状态用枚举类型。
(7)其余元素用字符串类型。
三、实验分析:【程序】:<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs=/2001/XMLSchema elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:simpleType name="priceType"><xs:restriction base="xs:decimal"><xs:fractionDigits value="2"/></xs:restriction></xs:simpleType><xs:element name="基本信息"><xs:complexType><xs:sequence><xs:element name="姓名" type="xs:string"/><xs:element name="时间" type="xs:date"/><xs:element name="emial" type="xs:string"/><xs:element name="地址" type="xs:string"/><xs:element name="邮编" type="xs:string"/><xs:element name="支付方式" type="xs:paidStyle "/><xs:simpleType name="paidStyle"><xs:restriction base="xs:string"><xs:enumeration value="现金支付"/><xs:enumeration value="信用卡"/><xs:enumeration value="积分支付"/></xs:restriction></xs:simpleType><xs:element name="缺货处理" type="xs:string"/><xs:element name="包装" type="xs:string"/><xs:element name="余额处理" type="xs:string"/><xs:element name="邮发日期" type="xs:string"/><xs:element name="固定电话" type="xs:string"/><xs:element name="手机" type="xs:string"/><xs:element name="发票单位" type="xs:string"/><xs:element name="发货单位" type="xs:string"/></xs:sequence><xs:attribute name="订单号" use="required"/><xs:simpleType><xs:restriction base=”xs:string”><xs:length value=”11”><xs:restriction></xs:simpleType></xs:complexType></xs:element><xs:element name="图书信息"><xs:complexType><xs:sequence><xs:element name="图书"><xs:complexType><xs:sequence><xs:element name="书名" type="xs:priceType"/><xs:element name="定价" type="xs: priceType "/><xs:element name="会员价" type="xs: priceType "/><xs:element name="数量" type="xs:integer"/><xs:element name="备注" type="xs:string"/></xs:sequence><xs:attribute name="书号" type="xs:string"use="required"/></xs:complexType></xs:element><xs:element name="图书品种数" type="xs:string"/><xs:element name="总计书款" type="xs: priceType "/><xs:element name="发货费" type="xs: priceType "/><xs:element name="包装费" type="xs: priceType "/><xs:element name="余额支付" type="xs: priceType "/><xs:element name="积分支付" type="xs: priceType "/><xs:element name="优惠卡支付" type="xs: priceType "/><xs:element name="全部费用" type="xs: priceType "/><xs:element name="快递公司" type="xs:string"/><xs:element name="快递电话" type="xs:string"/><xs:element name="库房发货时间" type="xs:date"/><xs:element name="订单状态" type="xs:string"/></xs:sequence></xs:complexType></xs:element><xs:element name="订单"><xs:complexType><xs:sequence><xs:element ref="基本信息"/><xs:element ref="图书信息"/></xs:sequence></xs:complexType></xs:element></xs:schema>【程序分析】第一行是对该文档的声明,与dtd和xml一样,第2到4行是对价格和邮费等数据的类型定义一个全局类型priceStyle,下面的价格等元素来引用这个全局变量。
实验三在XML文档中使用XMLSchema

实验三在XML文档中使用XML Schema姓名:班级:学号:一、实验目的通过本实验,使学生能够〔1〕了解并掌握XML Schema的定义方法及其用途;〔2〕了解并掌握Schema的根本构造;〔3〕了解并掌握Schema的数据类型;〔4〕了解并掌握Schema的元素声明;〔5〕了解并掌握Schema的属性声明;〔6〕了解并掌握XML Spy中基于Schema的XML文件输入。
二、实验要求〔1〕能参照例如XML文件进展对应的XML Schema定义;〔2〕能利用Schema对XML文件进展验证。
三、实验原理〔1〕XML Schema是对XML构造进展定义的另一种机制;〔2〕XML Schema本身符合XML语法。
四、实验内容为实验一“旅行社信息〞设计的XML文档,编写Schema文档;使得Schema文档中包含以下技术的使用:〔1〕简单类型元素的定义与应用;〔2〕复杂类型元素的定义与应用;〔3〕属性声明的使用。
相关代码:<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="" elementFormDefault="qualified"attributeFormDefault="unqualified"><xs:complexType name="travelPreOrder"><xs:sequence><xs:element name="travelAgency"="mytravelAgency"></xs:element><xs:element name="planeCompany"type="myplaneCompany"></xs:element><xs:element name="trainCompany"="mytrainCompany"></xs:element><xs:element name="busCompany"type="mybusCompany"></xs:element></xs:sequence></xs:complexType><xs:complexType name="mytravelAgency"><xs:sequence><xs:element name="travelAgencyName" type="xs:string"></xs:element><xs:element name="travelAgencyEmail" type="xs:string"></xs:element><xs:element name="travelAgencyAddress"type="mytravelAgencyAddressType"></xs:element><xs:element name="travelAgencyPerson"type="mytravelAgencyPerson"></xs:element></xs:sequence></xs:complexType><xs:complexType name="mytravelAgencyAddressType"><xs:sequence><xs:element name="province"="xs:string"></xs:element><xs:element name="city" type="xs:string"></xs:element><xs:element name="street" type="xs:string"></xs:element><xs:element name="postalcode" type="xs:string"></xs:element> </xs:sequence></xs:complexType><xs:complexType name="mytravelAgencyPerson"><xs:sequence><xs:element name="name"="xs:string"></xs:element><xs:element name="sex" type="xs:string"></xs:element><xs:element name="IdCard" type="xs:string"></xs:element><xs:element name="address" type="xs:string"></xs:element><xs:element name="tel" type="xs:string"></xs:element></xs:sequence></xs:complexType><xs:complexType name="myplaneCompany"><xs:sequence><xs:element name="元素组" type="xs:string"></xs:element> </xs:sequence></xs:complexType><xs:complexType name="mytrainCompany"><xs:sequence><xs:element name="元素组" type="xs:string"></xs:element> </xs:sequence></xs:complexType><xs:complexType name="mybusCompany"><xs:sequence><xs:element name="元素组" type="xs:string"></xs:element> </xs:sequence></xs:complexType></xs:schema>五、思考题〔1〕Schema与DTD的共同点和区别是什么?XMLSchema和DTD都是用来定义各种文件中XML标记的使用标准.XMLSchema是标准的XML文件,而DTD那么使用自己的特殊语法,因此,只需要知道XML的语法规那么就可以编写Schema了,不需要再学习其它语法规那么. 可以使用一样的处理器来解读, XML文件与XML Schema文件. XML Schema 利用命名空间将文件中特殊的节点与Schema说明相联系,一个XML文件可以有多个对应的Schema ,假设是DTD的话,一个XML文件只能有一个相对应的DTD文件. XMLSchema的内容模型是开放的,可以随意扩大,而DTD那么无法解读扩大的内容. DTD只能把文件类型定义为一个字符串,而XML Schema 却允许把文件类型定义为整数,浮点数,字符串,布尔值或其他各各数据类型,而无须重新定义. XMLSchem 相对DTD的明显优势是XMLSchema 文件本身也是XML文件,而不是像DTD那样使用。
课堂练习1 XML Schema模式文档

课堂练习1 XML Schema模式文档一、练习目的:1.掌握复杂数据类型的定义2.掌握元素、属性的声明方法二、练习内容1.根据下面的XML文档test7_1.xml写出符合要求的Schema文档。
<?xml version="1.0" encoding="gb2312"?><customer no="001718"><name>Tom</name><address>芜湖职业技术学院</address></customer>2. 分析下面的XML文档test7_2.xml,编写符合有效性验证的Schema 文档<?xml version="1.0" encoding="UTF-8"?><student xmlns:xsi="/2001/XMLSchema-instance"> <id>100023</id><name>Tom</name><sex>male</sex><age>18</age></student>数据内容类型描述要求:(1)学号以100开头,后面为3个数字的组合(正则表达式约束)(2)姓名是一个最多6个字符的字母组合,首字母大写,其余为小写字母(正则表达式约束)(3)性别在male和female之间选择(枚举约束)(4)年龄在17-30之间(值范围约束)3.分析如下Schema文档test7_3.xsd,编写符合有效性验证的XML文档test7-3.xml<?xml version="1.0" encoding="GB2312"?><xsd:schema xmlns:xsd="/2001/XMLSchema"elementFormDefault="qualified"><xsd:simpleType name="name"><xsd:restriction base="xsd:string"><xsd:enumeration value="钢笔"/><xsd:enumeration value="圆珠笔"/><xsd:enumeration value="铅笔"/><xsd:enumeration value="毛笔"/></xsd:restriction></xsd:simpleType><xsd:element name="单价"><xsd:complexType><xsd:all><xsd:element name="出厂价" type="xsd:integer"/><xsd:element name="售价" type="xsd:float"/></xsd:all></xsd:complexType></xsd:element><xsd:element name="产品"><xsd:complexType><xsd:sequence><xsd:element name="产品名称" type="name"/><xsd:element ref="单价"/></xsd:sequence><xsd:attribute name="ID" use="required"><xsd:simpleType><xsd:restriction base="xsd:NMTOKEN"/></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="产品系列"><xsd:complexType><xsd:sequence><xsd:element ref="产品" maxOccurs="unbounded"/> </xsd:sequence></xsd:complexType></xsd:element></xsd:schema>。
通过代码示例跟我学XML Schema相关的应用技术——XML Schema语法:XSDL(XML Schema定义语言)的应用示例

1.1通过代码示例跟我学XML Schema相关的应用技术——XML Schema语法:XSDL(XML Schema定义语言)的应用示例Schema有着自己的一套完整的语法,主要是对元素、属性等的定义。
涉及到的关键标签包括:Schema、element、complexType、attribute、ElementType 、AttributeType 、group、datatype、description。
1、Schema标签元素<schema>它是XML Schema中第一个出现的标签元素(也就是为根标签元素),用于声明该XML 文档是一个Schema文档。
<schema>根标签元素中包括模式的约束、XML模式命名空间的定义,其它的命名空间的定义、版本信息、语言信息和其他一些属性。
<xsd:schema xmlns="/2001/XMLSchema"xmlns:xsi=/2001/XMLSchema-instancestargetNamespace="/namespaces/Employees"> </xsd:schema>(1)Schema标签元素有两个主要的属性:1)name指定该Schema的名称2)而xmlns则指定该Schema包含的命名空间。
(2)语法如下:<xsd:schema xmlns:xsd=“/2001/XMLSchema”>…</xsd:schema>2、element标签元素<element>(1)element的语法定义<xsd:element name=”SoftWareStudent”type=”xsd:string” />(2)最主要的name和type属性XSD中的元素是利用element标识符来声明的。
<element>标签元素中的name属性是元素的名字,type属性是元素值的类型,在这里可以是XML Schema中内置的简单数据类型或其它扩展的数据类型。
XML实验报告(XML,DTD,SCHEMA,XPATH,XSLT,利用JAVA对XML进。。。

XML实验报告(XML,DTD,SCHEMA,XPATH,XSLT,利⽤JAVA对XML进。
⽬录1).选取某⼀场景,描述该场景下的实体、实体属性以及实体之间的关系;注意选取实体最好体现出分解层次,以便于呈现XML,XML本⾝遵循层次数据模型;该部分⽂本描述要详尽,并⽤表格呈现出来。
(10分)2).采⽤XML对上述实体、实体属性及关系进⾏描述,要求体现出系统预定义实体,保证XML语法正确。
(10分)3).依据实例化XML⽂档写出组织模板⽂件DTD和SCHEMA,要求DTD与SCHEMA要保持映射,同时证明XML⽂件为有效的⽂档,同时组织模板要具有较⾼的抽象层次和较宽泛的约束能⼒。
(40分)4).提出4个查询题设,要求⾄少两个要结合XPATH标准函数,写出XPATH求解路径。
(20分)5).利⽤XSLT显⽰模板将XML⽂件展⽰为表格,与1⼀致。
(10分)6).利⽤JAVA或PYTHON等⼯具对XML⽂件节点进⾏属性值读写操作。
(10分)1).任务1-5为必做,任务6为选做;如果任务6不做,则相应分值分配给任务3和4各5分,如果做则任务6按照现有10分来评分。
请在提交课程设计开始就说明是否完成任务6。
2).每个任务评分均分为四个等级,优良中差,各任务合计之后为最终课程设计分数。
3.课程设计格式和任务之间的衔接也作为课程设计考察的⼀部分。
场景描述以学院为例,⼀个学院拥有多个专业,⼀个专业拥有多个班级和多个教师。
⼀个班级拥有多个学⽣和⼀个(唯⼀)班长,⼀个⽼师可以教授多个课程。
例如,信息管理学院有三个专业,分别是信息资源管理、电⼦商务和信息管理与信息系统。
(假设)每⼀个专业都有两个班级和两个教师,每⼀个班级都有⼀名班长和⼀名学⽣,每⼀名教师教授两门课程。
层次数据模型3.⽤表格表⽰⽂档代码<?xml version="1.0" encoding="UTF-8"?><!-- edited with XMLSpy v2014 () by () --><!-- 以下数据都是虚拟出来的数据,并不真实--><School ID="IOS001" name="信息管理学院"><Major ID="M001" name="信息资源管理"><Teacher TID="T001"><pname>陈思考</pname><sex>男</sex><professionalpost>教授</professionalpost><Course CNO="C001"><cname>⽂献信息资源检索</cname><credit>2</credit><period>32</period></Course><Course CNO="C002"><cname>管理信息系统</cname><credit>4</credit><period>48</period></Course></Teacher></Teacher><Teacher TID="T002"><pname>张简单</pname><sex>⼥</sex><professionalpost>副教授</professionalpost> <Course CNO="C003"><cname>⾼等数学B</cname><credit>2</credit><period>32</period></Course><Course CNO="C004"><cname>管理统计学</cname><credit>2</credit><period>32</period></Course></Teacher><Class CID="1901" name="信资1班"><Classpresident SID="S001"><pname>戴⼆刚</pname><sex>男</sex></Classpresident><Student SID="S002"><pname>江福</pname><sex>⼥</sex></Student></Class><Class CID="1902" name="信资2班"><Classpresident SID="S003"><pname>刘欢</pname><sex>⼥</sex></Classpresident><Student SID="S004"><pname>严⼏</pname><sex>男</sex></Student></Class></Major><Major ID="M002" name="电⼦商务"><Teacher TID="T003"><pname>王得</pname><sex>男</sex><professionalpost>教授</professionalpost> <Course CNO="C005"><cname>数据挖掘</cname><credit>3</credit><period>36</period></Course><Course CNO="C006"><cname>经济学基础</cname><credit>2</credit><period>32</period></Course></Teacher><Teacher TID="T004"><pname>王默默</pname><sex>男</sex><professionalpost>副教授</professionalpost> <Course CNO="C007"><cname>管理运筹学</cname><credit>2</credit><period>32</period></Course><Course CNO="C008"><cname>管理统计学</cname><credit>2</credit><period>32</period><period>32</period></Course></Teacher><Class CID="1903" name="电商1班"><Classpresident SID="S005"><pname>陈凡</pname><sex>男</sex></Classpresident><Student SID="S006"><pname>⽯发</pname><sex>男</sex></Student></Class><Class CID="1904" name="电商2班"><Classpresident SID="S007"><pname>吴宇</pname><sex>⼥</sex></Classpresident><Student SID="S008"><pname>葛⼀萨</pname><sex>男</sex></Student></Class></Major><Major ID="M003" name="信息管理与信息系统"> <Teacher TID="T005"><pname>刘⽟</pname><sex>⼥</sex><professionalpost>教授</professionalpost><Course CNO="C009"><cname>Java:⾯向对象程序设计</cname> <credit>4</credit><period>48</period></Course><Course CNO="C010"><cname>数据结构(C/C++)</cname><credit>3</credit><period>36</period></Course></Teacher><Teacher TID="T006"><pname>史丹</pname><sex>⼥</sex><professionalpost>副教授</professionalpost> <Course CNO="C011"><cname>XML</cname><credit>2</credit><period>32</period></Course><Course CNO="C012"><cname>UML</cname><credit>2</credit><period>32</period></Course></Teacher><Class CID="1905" name="信管1班"><Classpresident SID="S009"><pname>得得</pname><sex>男</sex></Classpresident><Student SID="S010"><pname>陈⽣</pname><sex>⼥</sex></Student></Class><Class CID="1906" name="信管2班"><Class CID="1906" name="信管2班"><Classpresident SID="S011"><pname>储梦</pname><sex>⼥</sex></Classpresident><Student SID="S012"><pname>撒⽅法</pname><sex>男</sex></Student></Class></Major></School>格式良好验证视图部分数据的效果展⽰。
xmlschema实例

xmlschema实例XML Schema 实例XML Schema 是一种用于定义 XML 文档结构、数据类型和约束的语言。
通过使用 XML Schema,可以确保 XML 文档的有效性和一致性,从而提高数据交换的可靠性和可靠性。
本文将介绍 XML Schema 实例的基本概念、语法和应用。
一、XML Schema 实例的概念XML Schema 实例是一个 XML 文档,它遵循特定的 XML Schema 定义。
它描述了 XML 文档的结构、元素和属性的数据类型以及它们之间的关系。
通过使用 XML Schema 实例,可以对 XML 文档进行验证,以确保其符合特定的规则和要求。
二、XML Schema 实例的语法XML Schema 实例遵循 XML 的语法规则,并使用特定的命名空间和元素来定义 XML 文档的结构和约束。
以下是 XML Schema 实例的基本语法要素:1. 命名空间:XML Schema 实例使用命名空间来区分不同的 XML Schema 定义。
命名空间通过 XML 文档的属性 xmlns:xsi 和 xmlns 来声明。
2. 元素:XML Schema 实例使用元素来定义 XML 文档的结构。
元素可以包含其他元素、属性和数据类型约束。
元素使用 xs:element元素来声明,并使用 name 属性指定元素的名称。
3. 属性:XML Schema 实例使用属性来定义元素的特性和约束。
属性使用 xs:attribute 元素来声明,并使用 name 属性指定属性的名称和类型。
4. 数据类型:XML Schema 实例使用数据类型来定义元素和属性的值的类型和约束。
数据类型可以是基本类型(如字符串、整数、日期等)或自定义类型。
数据类型使用 xs:simpleType 元素来声明。
5. 约束:XML Schema 实例使用约束来限制元素和属性的值的范围和格式。
约束使用 xs:restriction 元素来声明,并使用 base 属性指定所约束的数据类型。
XML schema实验及答案

实验五:XML S CHEMA2实验目的与要求通过实验,使学生熟悉XMLSchema语法结构,并加深对XMLSchema应用的理解。
要求学生能够改正XSD文件中的错误;要求能够为自己编写的XML 文件添加XML Schema。
3实验内容实验1. P84 第1题实验2.根据书籍XML 文档,建立Schema 文档和DTD文档。
<?xml version="1.0" encoding="gb2312" ?><book isbn="0-764-58007-8"><title>三国演义</title><author >罗贯中</author><price >80.00 </price><resume>滚滚长江东逝水,浪花淘尽英雄。
是非成败转头空。
青山依旧在,几度夕阳红。
</resume><resume>白发渔樵江渚上,惯看秋月春风。
一壶浊酒喜相逢。
古今多少事,都付笑谈中。
</resume><publish><publisher>文艺出版社</publisher><address>北京</address></publish></book>。
·Scheme文件:<xs:schemaxmlns:xs="/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="book"><xs:complexType><xs:sequence><xs:element name="title"type="xs:string"/><xs:element name="author" type="xs:string"/><xs:element name="price" type="xs:string"/> <xs:element name="resume" type="xs:string" maxOccurs="3"/><xs:element name="publish"><xs:complexType><xs:sequence><xs:element name="publisher" type="xs:string"/> <xs:element name="address" type="xs:string"/></xs:sequence></xs:complexType></xs:element></xs:sequence><xs:attribute name="isbn" type="xs:string"/></xs:complexType></xs:element></xs:schema>Schema对应的xml文件:<?xml version="1.0" encoding="UTF-8"?><bookxmlns:xsi="/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\user\桌面\5-2.xsd"><title>三国演义</title><author>罗贯中</author><price>80.00</price><resume>滚滚长江东逝水,浪花淘尽英雄。
xml练习题

X M L练习题(总13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--一、填空题1.HTML语言是如何显示数据的,XML是描述数据是什么。
XML和应用程序之间存在的软件组织,主要起桥梁的作用。
5.XML的技术优势有数据重用、数据和表示分离、可扩展性、语法自由、结构化集成数据。
二、选择题1.HTML语言中 A 表示超级链接的标记。
A. <a>B. <b>C. <option>D.<tr>2.表单标记中, B 用来表示文本框或密码框输入字符最大数。
A. fileB. maxlengthC. sizeD. name3.下面 D 不是XML语言的特点。
A. 自我描述B.可扩展C. 跨平台D. 修饰数据4.下面 D 不是XML使用的解析器。
A. IBM XML4Jaache XercesB. Sun Project XC. Microsoft MSXMLD. Java5.下面 C 不是XML的相关技术。
A. DTDB. XSLC. cellpaddingD. table7.HTML标记中,能够完成颜色设定的标记,除了 D 标记不是外,其余全是。
A. bgcolorB. TextC. colorD. href8.HTML标记中能显示图片的标记是 C 。
A. embedB. srcC. imgD. a9.对XML文档的显示样式修饰的是下面 A 技术。
A. XSLB. XPathC. XlinkD. XHTML10.HTML语言中的预定义标记是 C 标记。
A. addressB. blockquoteC. preD. u三、简答题1.简述HTML表格有哪些标记。
答案:table定义表格、tr定义表行、th定义表头、td定义表标题2.简述XML和HTML的关系。
答案:(异同)相同点:XML和HTML都是SGML的子集,都是标记语言。
XML实验三基于XMLSchema实现XML文档的有效性验证

淮海工学院计算机工程学院实验报告书课程名: XML开发技术题目:基于XML Schema实现XML文档的有效性验证班级:*******学号:201*******姓名:***一.实验目的(1)通过实验,掌握Schema中各元素的使用方法。
(2)通过实验,掌握在Schema中声明元素、属性的方法。
(3)通过实验,熟悉并掌握使用Schema验证XML文档的有效性。
(4)能够编写一个通过Schema进行有效性验证的XML文档。
二.实验内容1、教材习题4中的第2题:定义XML文件对应的Schema文件。
要求XML文档命名为library.xml,Schema文档命名为library.xsd。
2、为实验一中已编写好的XML文档poems.xml,编写Schema文档(自己的学号.xsd)验证XML文档的有效性。
3、根据下面student.xsd的内容,编写一个有效的XML文档,保存为student.xml.<?xml version="1.0"?><xs:schema xmlns:xs=""><xs:element name="student" type="Student"/><xs:complexType name="Student"><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="gender" type="Gender"/><xs:element name="no" type="xs:string"/><xs:element name="telephone" type="Telenum"/><xs:element name="age" type="xs:nonNegativeInteger"/><xs:element name="gpa" type="xs:int" minOccurs="0"/></xs:sequence></xs:complexType><xs:simpleType name="Gender"><xs:restriction base="xs:string"><xs:enumeration value="Female"/><xs:enumeration value="Male"/></xs:restriction></xs:simpleType><xs:simpleType name="Telenum"><xs:restriction base="xs:string"><xs:pattern value="(\d{4}-\d{8})|(\d{3}-\d{8})|(\d{4}-\d{7})"/></xs:restriction></xs:simpleType></xs:schema>三.实验步骤(1)在网络没有联通的情况下,打开XMLSPY环境;(2)编写XML文档(受Schema约束)(3)验证XML文档的有效性四.实验结果Library.xml<?xml version="1.0" encoding="UTF-8"?><library xmlns:xsi=""xsi:noNamespaceSchemaLocation="F:\XML\实验三\library.xsd"> <books><book bookid="b-1-1">XML详解</book><book bookid="b-1-2">Servlet从入门到精通</book><book bookid="b-1-3">JSP实例编程</book></books><records><item><date>2012-08-01</date><person name="张三" borrowed="b-1-1 b-1-2"/></item><item><date>2012-08-02</date><person name="李四" borrowed="b-1-1 b-1-3"/></item></records></library>Library.xsd<?xml version="1.0" encoding="UTF-8"?><!--W3C Schema generated by XMLSpy v2007 sp1 ()--> <xs:schema xmlns:xs=""><xs:simpleType name="ST_book"><xs:restriction base="xs:string"><xs:enumeration value="JSP实例编程"/><xs:enumeration value="Servlet从入门到精通"/><xs:enumeration value="XML详解"/></xs:restriction></xs:simpleType><xs:element name="records"><xs:complexType><xs:sequence><xs:element ref="item" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element><xs:element name="person"><xs:complexType><xs:attribute name="name" use="required"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="张三"/><xs:enumeration value="李四"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="borrowed" use="required"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="b-1-1 b-1-2"/><xs:enumeration value="b-1-1 b-1-3"/></xs:restriction></xs:simpleType></xs:attribute></xs:complexType></xs:element><xs:element name="library"><xs:complexType><xs:sequence><xs:element ref="books"/><xs:element ref="records"/></xs:sequence></xs:complexType></xs:element><xs:element name="item"><xs:complexType><xs:sequence><xs:element ref="date"/><xs:element ref="person"/></xs:sequence></xs:complexType></xs:element><xs:element name="date"><xs:simpleType><xs:restriction base="xs:date"><xs:enumeration value="2012-08-01"/><xs:enumeration value="2012-08-02"/></xs:restriction></xs:simpleType></xs:element><xs:element name="books"><xs:complexType><xs:sequence><xs:element ref="book" maxOccurs="unbounded"/> </xs:sequence></xs:complexType></xs:element><xs:element name="book"><xs:complexType><xs:simpleContent><xs:extension base="ST_book"><xs:attribute name="bookid" use="required"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="b-1-1"/><xs:enumeration value="b-1-2"/><xs:enumeration value="b-1-3"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:schema>Poems.xml<?xml version="1.0" encoding="UTF-8"?><poems xmlns:xsi=""xsi:noNamespaceSchemaLocation="F:\XML\实验三\2011122605.xsd"><poem><poem_name>凉州词</poem_name><poem_author>王翰</poem_author><content><paragraph>葡萄美酒夜光杯</paragraph><paragraph>欲饮琵琶马上催</paragraph><paragraph>醉卧沙场君莫笑</paragraph><paragraph>古来征战几人回</paragraph></content></poem><poem><poem_name>贾生</poem_name><poem_author>李商隐</poem_author><content><paragraph>宣室求贤访逐臣</paragraph><paragraph>贾生才调更无伦</paragraph><paragraph>可怜夜半虚前席</paragraph><paragraph>不问苍生问鬼神</paragraph></content></poem><poem><poem_name>早发白帝城</poem_name><poem_author>李白</poem_author><content><paragraph>朝辞白帝彩云间</paragraph><paragraph>千里江陵一日还</paragraph><paragraph>两岸猿声啼不住</paragraph><paragraph>轻舟已过万重山</paragraph></content></poem></poems>2011122605.xsd<?xml version="1.0" encoding="UTF-8"?><!--W3C Schema generated by XMLSpy v2007 sp1 ()--> <xs:schema xmlns:xs=""><xs:element name="poems"><xs:complexType><xs:sequence><xs:element ref="poem" maxOccurs="unbounded"/> </xs:sequence></xs:complexType></xs:element><xs:element name="poem_name"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="凉州词"/><xs:enumeration value="早发白帝城"/><xs:enumeration value="贾生"/></xs:restriction></xs:simpleType></xs:element><xs:element name="poem_author"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="李商隐"/><xs:enumeration value="李白"/><xs:enumeration value="王翰"/></xs:restriction></xs:simpleType></xs:element><xs:element name="poem"><xs:complexType><xs:sequence><xs:element ref="poem_name"/><xs:element ref="poem_author"/><xs:element ref="content"/></xs:sequence></xs:complexType></xs:element><xs:element name="paragraph"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="不问苍生问鬼神"/><xs:enumeration value="两岸猿声啼不住"/><xs:enumeration value="千里江陵一日还"/><xs:enumeration value="古来征战几人回"/><xs:enumeration value="可怜夜半虚前席"/><xs:enumeration value="宣室求贤访逐臣"/><xs:enumeration value="朝辞白帝彩云间"/><xs:enumeration value="欲饮琵琶马上催"/><xs:enumeration value="葡萄美酒夜光杯"/><xs:enumeration value="贾生才调更无伦"/><xs:enumeration value="轻舟已过万重山"/><xs:enumeration value="醉卧沙场君莫笑"/></xs:restriction></xs:simpleType></xs:element><xs:element name="content"><xs:complexType><xs:sequence><xs:element ref="paragraph" maxOccurs="unbounded"/> </xs:sequence></xs:complexType></xs:element></xs:schema>Student.xsd:<?xml version="1.0"?><xs:schema xmlns:xs=""><xs:element name="student" type="Student"/><xs:complexType name="Student"><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="gender" type="Gender"/><xs:element name="no" type="xs:string"/><xs:element name="telephone" type="Telenum"/><xs:element name="age" type="xs:nonNegativeInteger"/><xs:element name="gpa" type="xs:int" minOccurs="0"/></xs:sequence></xs:complexType><xs:simpleType name="Gender"><xs:restriction base="xs:string"><xs:enumeration value="Female"/><xs:enumeration value="Male"/></xs:restriction></xs:simpleType><xs:simpleType name="Telenum"><xs:restriction base="xs:string"><xs:pattern value="(\d{4}-\d{8})|(\d{3}-\d{8})|(\d{4}-\d{7})"/> </xs:restriction></xs:simpleType></xs:schema>Student.xml:<?xml version="1.0" encoding="UTF-8"?><!--Sample XML by XMLSpy v2007 sp1 ()--><student xsi:noNamespaceSchemaLocation="student.xsd" xmlns:xsi=""><name></name><gender></gender><no></no><telephone></telephone><age></age><gpa></gpa></student>五.实验体会***************************************************************** ********************************************************************* ********************************************************************* ********************。
实验三_XML_Schema模式文档(一)

实验三XML Schema模式文档(一)一、实验目的1 了解XML有效性验证机制Schema;2 学会使用Spy写Schema文件;3 学会将Schema文件转换为xml文件;二、实验内容1.根据下面的Schema文档(text6_1.xsd),写出能进行有效性验证的XML文档。
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="/2001/XMLSchema"><xsd:element name="year"><xsd:complexType><xsd:sequence><xsd:element name="spring" type="xsd:string"/><xsd:element name="summer" type="xsd:string"/><xsd:element name="autumn" type="xsd:string"/><xsd:element name="winter" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>2. 根据下面的XML文档,写出相应的Schema文档。
<?xml version="1.0" encoding="UTF-8"?><friend xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="test6_2.xsd"><name>tom</name><age>25</age><birthday>1990-05</birthday><address><city>beijing</city><country>China</country></address></friend>3. XML Schema结构如下:实验步骤:1).新建Schema●在XMLSpy中New一个xsd文件(W3C XML Schema);●将“ENTER_NAME_OF_ROOT_ELEMENT_HERE”更改为bookcase;●点击“element”左侧分支图标,在bookcase上右键,Add child→Sequence,命名为book;●在新图形上右键,Add child→Element,命名为b-name,以此类推;●在book上右键,选择Unbounded,表明一个bookcase中可以有1到无穷多个book元素;2).由Schema生成xml文件●打开已建好的Schema;●在“DTD/Schema”菜单选项中单击“生成样例xml文件”,系统自动生成xml框架,可在该框架内输入具体内容●4为博物馆管理系统建立一个XML Schema文件和XML文件,并做文档的有效性检验。
xml练习题(精品).doc

I、每个XML文档都分为两个部分:和________________________________ 」2^ <?xml version="1.0" encoding="gb2312”?>就是一个—3、XML文档内容的主体部分,一般由, , ,注释和内容组成。
4、一个元素开始的分隔符被称作, 一个元素最后的分隔符被称作______________________ 」5、一共有四类元素:;仅含文本的;;含了元素、文本或混合元素的元素6、文档类型定义DTD,用来描述__________________________ 」7、在DTD中,元素类型是通过标记声明的。
8、属性类型设为ID,表明该属性的取值_____________________________________ 」9、Xml定义了两种类型的entityo 一种是;另一种是=10、所有Schema文档都必须要使用作为其根元素。
II、sequence 元素来自于命名空间。
12、声明用户自定义的简单数据类型使用关键字声明复杂类型元素要使用的关键字是13、用来包含数据显示的信息的文档就是o14、W3C推荐的样式表标准有两个,它们分别是:和=15、XSL由两部分组成:一是;二是o16、SQL Server2005通过SELECT语句的扩展功能,支持在服务器端以XML文档的形式返回SQL查询结果17、模式将查询结果集中的每一行映射到一个XML元素,并将行中的每一列映射到一个属性。
18、模式支持生成嵌套的XML元素,默认情况下,FROM 了句中的每个表(在SELECT子句中至少列出一列)将映射到一个XML元素,SELECT子句中的列将映射为属性。
19、模式能够最大限度地控制由查询结果生成的XML的格式20、我们可以通过使用系统存储过程的OPENXML函数把xml数据插入数据库。
21、dtd中指定,属性是必选属性要使用的关键字是:指定属性是可选属性要使用的关键字是___________________22、模式文件中,指定属性是必选属性,use的值是:指定属性是可选属性,use 的值是23、写出斜体部分在xml文档中所属的文档结构名称< ?xml version- "1.0" encoding "UTF-8"?><PRODUCTDATA><PRODUCT><PRODUCTNAME area= "CHINA”>飞机模型</PRODUCTNAME><!—this is a comment—><DESCRIPTION>外贸出口产品</DESCRIPTION><PRICE>15</PRICE><QUANTITY>9</QUANTITY></PRODUCT></PRODUCTDATA>第2章 1、 属性( A. version 2、XML ( C. +)用来表示XML 文档所使用的字符集。
XMLSchema语法XSDL及相关的应用技术

6、定义标签元素的属性
在XML Schema文档中可以按照定义标签元素的方法定义属 性,但受限制的程度较高。它们只能是简单类型,只能包含 文本,且没有子属性。 (1)利用attribute标签元素定义标签元素的属性 (2)可以应用在attribute标签元素定义中的属性如下
(3)创建标签元素的属性定义
作用:定义了子元素必须按照模式中指定的顺序显示(如果 是可选的,也可以不显示)。
语法定 义示例
(2)all组合器
作用:允许所定义的元素可以按照任意顺序显示,all元
素的子元素在默认情况下是必须的,而且每次最多显示一 次。
语法定义示例
(3)choice组合器 作用:允许指定多组声明中的一个,用于互斥情况。 语法定义示例
通过值范围限定 使用模式匹配限定
使用枚举方式限定
4、复合类型的element由<complexType>标签元素定义 (1)区分simpleType和complexType两者之间的不同
前面的<simpleType>标签元素用于描述没有属性的原子类 型的XML标签,而<complexType>标签元素则描述带有属性和 子标签的XML标签元素。
属性定义示例
7、Schema中的注释 (1)定义Schema中的注释的标签 XML Schema中的注释与其他(如CSS、XSL)中注释方 法不一样,如在CSS,XSL中的注意是放置在<!—和—>之 间;而XML Schema中的注释是放置在<description>和 </description>标签之间,用于说明Schema的定义内容。 (2)示例 <ElementType name="自行车" content="eltOnly"> <description>出售自行车</description> <element type="车型"/> <element type="颜色"/> <element type="新旧程度"/> <element type="售价"/> <element type="联系电话"/> </ElementType>
第3单元 单元项目实践-使用XML Schema定义描述网上.

《单元三 XML Schema应用》单元项目实践——使用XML Schema定义描述网上订单信息的XML标签一、实践目的1.学会创建XML Schema文档,使用XML Schema文档定义XML标签,并验证XML数据。
2.学会使用XML Schema内置简单类型定义XML标记和属性。
3.学会使用XML Schema定义简单数据类型和复杂数据类型,并使用自定义的简单数据类型和复杂数据类型定义XML标签和验证XML数据。
4.学会使用XML Schema全局组件与局部组件声明和验证XML。
5.理解命名空间的含义,并能使用XML Schema定义命名空间约束XML标记和属性。
二、实践环境1.软件环境:利用XML SPY 2013软件完成本单元项目实践内容。
2.硬件环境:PC机或便携式笔记本。
三、实践内容观察图1网上订单,使用表1中的中文名称或代码名称编写XML Schema文档,定义一套描述网上订单信息的XML标签,使用该Schema文档生成网上订单XML,并验证网上订单。
表1 网上订单中文名称和代码名称对照表序号中文名称代码名称序号中文名称代码名称2 订单号OrderID 16 发票内容BillContent3 订单状态OrderState 17 商品清单ProductList4 收货人信息ConsigneeInformation 18 商品对象Product5 收货人Consignee 19 商品编号ProductID6 地址Address 20 商品名称ProductName7 固定电话FixedPhone 21 价格ProductPrice8 手机号码MobilePhone 22 商品数量ProductNumber9 电子邮件Email 23 付款信息PaymentInformation10 支付及配送方式PayAndDelivery 24 商品总额ProductAmount11 支付方式PayMethod 25 运费Freight12 配送方式DeliveryMethod 26 返现Cashback14 发票类型BillType图1 网上订单四、实践要求1.“订单号”为9位数字字符串,使用正则表达式“/^\d{9}$/”定义简单数据类型orderIDSimpleType,“订单号”声明为orderIDSimpleType类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告三XMLschema编辑环境熟悉及语法学习
【实验目的】采用XML Spy编辑schema文件
【实验任务】
(1)任务一:参照学生手册表写出其对应的Schema文件。
学生手册
学号姓名性别年龄
1张三男20
2李四女19
3王五男27
(2)任务二:参照下面的XML文件写出其对应的DTD文件和Schema文件。
<?xml version="1.0"encoding="UTF-8"?>
<library>
<books>
<book id="b-1-1">JSP实例编程</book>
<book id="b-1-2">XML详解</book>
<book id="b-1-3">servlet</book>
</books>
<records>
<items>
<date>2012-08-02</date>
<person name="李四"borrowwd="b-1-1b-1-3"/>
</items>
<items>
<date>2012-08-01</date>
<person name="张三"borrowwd="b-1-1b-1-2"/>
</items>
</records>
</library>
【学生姓名】郑小川
【学生学号】2015214588
【学生专业】电子商务
【指导老师】叶光辉
【实验时间】2017.11.28
【实验步骤】
(1)任务一:参照学生手册表写出其对应的Schema文件。
学生手册
学号姓名性别年龄
1张三男20
2李四女19
3王五男27
第一,编辑XML文档,获得格式良好的XML文档
第二,进行Schema文档的编写,如下第一个图为自己编写的schema,第二个图为软件自行生成的schema,个人发现,二者最大的区别在于软件自己生成的schema会枚举出所有xml文档中出现的数据。
因此,在用它生成XML样例时的数据也有所不同。
(2)任务二:参照下面的XML文件写出其对应的DTD文件和Schema文件。
<?xml version="1.0"encoding="UTF-8"?>
<library>
<books>
<book id="b-1-1">JSP实例编程</book>
<book id="b-1-2">XML详解</book>
<book id="b-1-3">servlet</book>
</books>
<records>
<items>
<date>2012-08-02</date>
<person name="李四"borrowwd="b-1-1b-1-3"/>
</items>
<items>
<date>2012-08-01</date>
<person name="张三"borrowwd="b-1-1b-1-2"/>
</items>
</records>
</library>
发现软件XMLSPY可以自动为XML文档生成格式良好的DTD和SCHEMA,但是自己试着编写SCHEMA的过程中发现了一些小问题。
1>自己编写DTD文件,如下,且验证格式良好。
2>自己编写的Schema文件,如下。
发现错误显示在第36行
经过多次测试,发现原因是第35行代码缺少结束符/,格式良好如下:
为XML文档添加Schema命名空间
想要为该schema文件生成一个xml的样例,但是发现错误:records上下文没有对应,person元素赋错了类型。
改正后,文件有效。
成功生成的XML样例如下(由于自行编写的SCHEMA没有枚举所有XML中的数据,因此生成的样例是最简单的格式):。