当前位置:文档之家› XML实验讲义之 XML基础

XML实验讲义之 XML基础

实验1 XML基础(6课时)一、实验目的1.掌握XML文档结构。

2.掌握XML文件基本语法。

3.理解XML名称空间。

4.掌握XML的工具的用法。

5.掌握在DTD文档中声明元素、属性的各种方法。

6.理解各种实体的含义和适用范围。

7.掌握在Schema文档中声明元素、属性的各种方法。

8.使用Schema中的名称空间9.编写Schema进行XML有效性验证。

二、实验讲解1.XML基础XML扩展了HTML的标识和功能,使编程人员可以根据需要定义标记。

XML 还具有信息描述、交换等多项功能。

掌握XML的语法知识是进一步学习和运用XML技术的前提。

本实验演示编制XML文档的常用语法和基本规则,主要包括XML 基本语法、XML文档的基本组成等,这些内容是学习整个XML的基础。

2.xml的主要基本技术xml的主要基本技术包括:a)XML1.0规范:主要规定了如何定义XML文档及XML的语法规范。

b)XML文档定义和校验:主要包括DTD、xml Schema和名域。

c)XML中的定位和链接:包括XML的定位语言XPath、XPath的扩展XPointer和XML的链接语言XLink。

d)XML的转换和处理:包括XML转换语言XSLT、基于树结构的解析DOM和基于事件的解析SAX。

e)XML的表现形式:包括层叠样式表CSS和XSL格式化对象。

f)xml的工具3.xml的主要工具g)编辑器:用来编辑xml文档的工具。

主流产品有XML SPY和XML Writer等工具。

h)解析器:XML文档也必须通过XML解析器的解析之后才能在浏览器中正常显示。

主要有IBM XML4J解析器、MS XML 解析器和expat解析器。

i)浏览器XML文档在被解析器解析后,就可以通过浏览器进行显示。

主要有Internet Explorer(IE)和Mozilla。

4.内部DTDDTD分为内部DTD和外部DTD。

内部DTD指所有的DTD规则出现在XML文档内部,更准确地说是XML文档的序(PROLOG)中,其语法格式为:<!DOCTYPE 根元素名[.DTD规则(包括元素、属性、实体的声明和引用)]>如:<?xml version="1.0" encoding="gb2312"?><!--进行DTD声明--><!DOCTYPE hello [<!--声明hello的属性是#PCDATA--><!ELEMENT hello (#PCDATA)>]><hello>Hello,the world!</hello>5.外部DTD如果是用同一DTD来验证多个XML文档,外部DTD是最合适的解决方案,这样DTD可以得到重用,也能缩短开发周期。

外部DTD的语法格式如下:<!DOCTYPE 根元素名SYSTEM “外部DTD_URI”>或<!DOCTYPE 根元素名PUBLIC “DTD_NAME” “外部DTD_URI”>1)元素类型声明DTD中使用元素类型声明ETD(Element Type Declaraction)来声明所有有效的文档元素。

根元素声明其声明的语法格式为:<!DOCTYPE 根元素名[]>请参阅上节各个实例,在此不再累述。

ETD的结构<!ELEMENT 元素名元素内容描述>“有效的”XML文档规定文档中所使用的任何元素都必须在DTD 中给出定义2)正则表达式3)DTD属性的缺省值6.Xml schema和DTDDTD与XML Schema 相比,存在着严重的局限性。

DTD 要求元素由以下三种成分组成:文本字符串、文本字符串与其他子元素的混合和一组子元素。

与DTD相比,XML Schema功能更强大。

如清单 1 给出了一个XML 文档片段,清单 2 用DTD 语法声明了这两个元素,清单 3 则是相应的XML Schema 语法形式。

要注意,清单 3 中所用的是相同的XML 语法。

通过模式,验证解析器可以检查元素InvoiceNo 是否是正整数,元素ProductID 的首字符是否为 A 到Z 之间的字母,后面为六个阿拉伯数字。

清单1:XML 文档片段<InvoiceNo>123456789</InvoiceNo><ProductID>J123456</ProductID>清单2:描述清单 1 中元素的DTD 片段<!ELEMENT InvoiceNo (#PCDATA)><!ELEMENT ProductID (#PCDATA)>清单3:描述清单 1 中元素的XML Schema<element name='InvoiceNo' type='positive-integer'/><element name='ProductID' type='ProductCode'/><simpleType name='ProductCode' base='string'><pattern value='[A-Z]{1}d{6}'/></simpleType>三、实验内容1.使用xml spy编辑如下文档,保存后使用IE进行显示。

文件Welcome.xml<?xml version="1.0" encoding="gb2312"?><?xml-stylesheet type="text/css" href="welcome.css" ?><Example><title>你好,XML</title><Greeting>你好,欢迎来到XML的世界!</Greeting></Example>文件welcome.csstitle {display:block;color:red;font-size:20pt;text-align:center}Greeting {display:block;font-weight:bold;color:Green} 2.合并XML文档作者信息XML文档片段。

<?xml version="1.0" encoding="gb2312" ?><authors><author id="a0001" ISBN="ISBN7-04-014768-8"><a_name>丁跃潮</a_name><sex>男</sex><email> ding@</email></author><author id="a0002" ISBN="ISBN7-113-05892-2"><a_name>龚涛</a_name><sex>男</sex></author></authors>书籍信息XML文档片段。

<?xml version="1.0" encoding="gb2312" ?><books><book ISBN="ISBN7-04-014768-8"><b_name>计算机导论</b_name><price>19.7</price></book><book ISBN="ISBN7-113-05892-2"><b_name>PowerBuilder入门教程</b_name><price>48.0</price></book>出版社信息XML文档片段。

<?xml version="1.0" encoding="gb2312" ?><publishers><publisher ISBN="ISBN7-04-014768-8"><p_name>高等教育出版社</p_name><address>北京市东城区沙滩后街55号</address></publisher><publisher ISBN="ISBN7-113-05892-2"><p_name>中国铁道出版社</p_name><address>北京市宣武区右安门西街8号</address></publisher></publishers>合并得到3.下面是一个网上购物定单,写出该订单的XML格式。

顾客编号:X00349827,定单号:DD934809 定货时间:2004-05-17,付款方式:邮局汇款通讯地址:xxx市xxx路xxx号,邮编:123456,汇款地址:yyy市yyy路yyy号,收款人xxxx书店,定书号:001 书名:AAA 数量:1 价格:34.00定书号:002 书名:BBB 数量:1 价格:29.00定书号:003 书名:CCC 数量:1 价格:41.004.改错<?xml encoding="utf-8"?><!DOCTYPE 联系人列表[<!ELEMENT 联系人列表(联系人)*><!ELEMENT 联系人(姓名, (电话| E-mail), 手机?)> <!ELEMENT 姓名(#PCDATA)><!ELEMENT E-mail (#PCDATA)><!ELEMENT 手机(#PCDATA)>]><联系人列表><联系人><姓名>张三</姓名><电话>(023)12345678</电话><E-mail>zhang@</E-mail></联系人></联系人列表>5.填空<?xml encoding="utf-8"?><!DOCTYPE [<!ELEMENT 联系人列表(联系人)*><!ELEMENT 联系人(姓名, 电话)><!ELEMENT 姓名(#PCDATA)><!ELEMENT 电话(#PCDATA)><!ATTLIST 联系人CDATA #REQUIRED>]><联系人列表><联系人地址="&quot;重庆&quot;"><姓名>张三</姓名><电话>123</电话></联系人></联系人列表>6.编写XML文档创建根元素仓库,声明XML文档的命名空间:原料仓库、成品仓库和废料仓库。

相关主题