资源描述
昆明理工大学信息工程与自动化学院学生实验报告
( 2014 — 2015 学年第 2 学期 )
课程名称:XML技术与应用 开课实验室:信自楼234
年级、专业、班
计科
学号
姓名
成绩
实验项目名称
XML DTD 与XML Schema的使用
指导教师
卫守林
教
师
评
语
该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□
该同学的实验能力: A.强 □ B.中等 □ C.差 □
该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□
实验报告是否规范: A.规范□ B.基本规范□ C.不规范□
实验过程是否详细记录: A.详细□ B.一般 □ C.没有 □
教师签名:
年 月 日
一、 实验目的
1、掌握DTD的定义、引用
2、掌握DTD的验证
3、掌握XML Schema的定义、引用
4、掌握XML Schema的验证
5、了解XML Schema中名称空间的使用
二、 实验内容、源码及其结果记录
1、如图所示,为其系统设计标记语言及其对应的DTD,分别命名为code2_1.xml、code2_1.dtd。
<?xml version="1.0" encoding="gb2312" ?>
<!DOCTYPE Museum PUBLIC "-//Beginning XML//DTD Museum Example//EN" "code2_1.dtd">
<Museum>
<OilPainting>
<Author>c0500069</Author>
<Size>20050517</Size>
<Time>pending</Time>
</OilPainting>
<Sculpture>
<Author>001</Author>
<quality>10</quality>
</Sculpture>
<Coin>
<MonetaryValue>c500701</MonetaryValue>
<TheUseOfTime>20050712</TheUseOfTime>
</Coin>
</Museum>
2、在一个XML文档中,需要用到一个article的结点,这个结点结构如下:
<article>
<HeadLine section="business">
<MainHead>Main headline goes here</MainHead>
<SubHead>A subheadline goes here</SubHead>
</HeadLine>
<ByLine>
<Author>John Doe</Author>
<title>Reporter</title>
</ByLine>
<DateLine>April 30, 2005</Dateline>
<body>Content of story goes here…</body>
<stats>
<submitted>2005-03-02</submitted>
<wordCount>1523</wordCount>
</stats>
</article>
(1)请在分别定义HeadLine、ByLine、DateLine、stats结点的数据类型基础上,再定义article的复杂数据类型。
(2)若以上程序段多篇文章(articles),请为其建立完整的XML Schema文件,保存文件名为code3_1.xsd。
code3_1.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="MainHead" type="xsd:string"/>
<xsd:element name="SubHead" type="xsd:string"/>
<xsd:element name="Author" type="xsd:string"/>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="DateLine" type="xsd:string"/>
<xsd:element name="body" type="xsd:string"/>
<xsd:element name="submitted" type="xsd:string"/>
<xsd:element name="wordCount" type="xsd:string"/>
<xsd:attribute name="section" type="xsd:string"/>
<xsd:element name="article">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="HeadLine">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="MainHead"/>
<xsd:element ref="SubHead"/>
</xsd:sequence>
<xsd:attribute ref="section" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ByLine">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Author"/>
<xsd:element ref="title"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element ref="DateLine"/>
<xsd:element ref="body"/>
<xsd:element name="stats">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="submitted"/>
<xsd:element ref="wordCount"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
3、为 " code3_2.xml" XML 文档设计对应的XML Schema文件,保存文件名为code3_2.xsd。
<?xml version="1.0" encoding="ISO-8859-1"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>George Bush</orderperson>
<shipto>
<name>John Adams</name>
<address>Oxford Street</address>
<city>London</city>
<country>UK</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
code3_2.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="orderperson" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="country" type="xsd:string"/>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="note" type="xsd:string"/>
<xsd:element name="quantity" type="xsd:string"/>
<xsd:element name="price" type="xsd:string"/>
<xsd:attribute name="orderid" type="xsd:string"/>
<xsd:element name="shiporder">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="orderperson"/>
<xsd:element name="shipto">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="name"/>
<xsd:element ref="address"/>
<xsd:element ref="city"/>
<xsd:element ref="country"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="item">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="title"/>
<xsd:element ref="note"/>
<xsd:element ref="quantity"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute ref="orderid" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
三、 实验结果、分析和结论
通过本节课,学会了DTD文档的书写,以及知道了DTD对于早期XML的作用,同时也了解了DTD文档的局限性,同时让我对schema有了更深的体会,本次试验获益匪浅。
学会了Schema的书写格式,同时也了解了Schema和DTD的异同点,相信,不久Schema会代替DTD的。
展开阅读全文