10第十讲 XML语言及其应用.docx
- 文档编号:12902362
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:32
- 大小:430.23KB
10第十讲 XML语言及其应用.docx
《10第十讲 XML语言及其应用.docx》由会员分享,可在线阅读,更多相关《10第十讲 XML语言及其应用.docx(32页珍藏版)》请在冰豆网上搜索。
10第十讲XML语言及其应用
第十讲XML语言及其应用
主要内容
1.XML概述
1)什么是XML
2)XML应用实例
3)XML和HTML比较
2.XML语法
1)XML文档的逻辑结构
2)XML整体逻辑结构总结
3)XML文档的物理结构
3.DTD的建立和使用
1)DTD概述
2)元素定义
3)定义元素属性
4.Scheme的建立与应用
•XML概述
•什么是XML
•什么是Html(例1-1)
•什么是Xml(例1-2)
–需要DTD作为置标的语法
–需要样式单来显示
–DTD的描述(例1-3)
•XML应用实例
•为置标语言FCLML公司的客户列表置表语言制定的,文档类型定义DTD,其程序为fclml.dtd(例1-4)
•客户联系信息的XML文档Client.xml(例1-5)
•为client.xml制定一个样式Mystyle.xsl(例1-6)
•Html格式及显示(例1-7,例1-8)
例1-6
<xsl:
stemplatmatch="联系人列表">
<xsl:
for—eachselect="联系人">
<UL>
<LI><xsl:
value—ofselect="姓名"/><LI>
<UL>
<LI>用户ID:
<xsl:
value—ofselect="ID"/></LI>
<LI>公司:
<xsl:
value—ofselect=“公司"/></LI>
<LI>EMAIL:
<xsl:
value—ofselect=“EMAIL"/></LI>
<LI>电话:
<xsl:
value—ofselect=“电话"/></LI>
<LI>街道:
<xsl:
value—ofselect=“地址/街道"/></LI>
<LI>城市:
<xsl:
value—ofselect=“地址/城市"/></LI>
<LI>省份:
<xsl:
value—ofselect=“地址/省份"/></LI>
</UL>
</UL>
</xsl:
for-each>
</xsl:
template>
</xsl:
stylesheet>
•XML和Html比较
XML和Html比较
置标语言家谱表
•XML语法
•XML文档的逻辑结构
•例2-1
Ø一个XML文档最基本构成
Ø上例出现的逻辑要素
Ø元素、根元素
Ø数据块CDATA节作用
Ø注释
Ø处理指令PI
例2-1
[1]<?
xmlversion=“1.0”encoding=”GB2312“standalone=”no“?
>
[2]<?
xml—stylesheettype=“text/xsl”href=”mystyle.xsl”?
>
[3]<专有名词列表>
[41<专有名词>
[5]<名词>XML</名词>
[6]<解释>XMI。
是一种可扩展的元置标语言,它可用以规定新的置标规则,并根据
这个规则组织数据</解释>
[7]<示例>
[8]<!
—一个XML的例子—>
[9]<!
[CDATA[
[10]<联系人>
[11]<姓名>张三</姓名>
[12]<EMAIL>zhang@aaa.com</EMAIL>
[13]</联系人>
t14]]]>
[15]</示例>
[16]</专有名词>
[17]</专有名词列表>
•XML整体逻辑结构总结
•XML文档通常以一个XML声明开始
•通过XML元素来组织XML数据
•XML元素包括标记和字符数据
•为组织数据更方便、清晰,在字符数据中引入CDATA数据块
•在文档中引入注释
•需要给XML处理程序提供一些指示信息,XML文档中可以包含处理指令
•XML文档的物理结构
•参数实体引用与通用实体引用的差异(例2-2,例2-3)
例2-3
<?
xmlversion=“1.0”encoding=”GB2312“standalone=“no”?
>
<!
DOCTYPE联系人列表[
<!
ENTITYA公司地址“北京市五街1234号’>
<!
ENTITYB公司地址”上海南京路9876号“>
]>
<联系人列表>
<联系人>
<姓名>张三</姓名>
<公司>A公司</公司>
<地址>&A公司地址;</地址>
</联系人>
<联系人>
<姓名>李四</姓名>
<公司>B公司</公司>
<地址>&B公司地址;</地址>
</联系人>
<联系人>
<姓名>王五</姓名>
<公司>B公司</公司>
<地址>&B公司地址;</地址>
</联系人>
</联系人列表>
•DTD的建立和使用
•DTD概述
•概述
Ø是一套关于标记符的语法规则
Ø可以是XML文档的一部分,但通常是一份单独的或一系列的文档
Ø想使用XML进行数据交换的行业或组织可定义自己的DTD
ØDTD规定了语法分析器解释所有细节
DTD概述
•内部DTD
Ø文档由前导说明和文档体构成,前导说明中包含XML声明,文档体中是具体的数据信息,前导说明中可包含DTD定义。
Ø一个包含DTD的XML文档的结构(例3-1)
例3-1
C1ient.xml
<?
xmlversion=“1.0”encoding=”GB2312,standalone=“yes”>
<!
DOCTYPE联系人列表[
<!
ELEMENT联系人列表(联系人)*>
<!
ELEMENT联系人(姓名,ID,公司,EMAIL,电话,地址)>
<!
ELEMENT夏NT地址(街道,城市,省份)>
<!
ELEMENT姓名(#PCDATA)>
<!
ELEMENTID(#PCDATA)>
<!
ELEMENT公司(#PCDATA)>
<!
ELEMENTEMAIL(#PCDATA)>
<!
ELEMENT电话(#PCDATA)>
<!
ELEMENT街道(#PCDATA)>
<!
ELEMENT城市(#PCDATA)>
<!
ELEMENT省份(#PCDATA)>
]>
<?
xml—stylesheettype="text/xsl"href="mystyle.xsl"?
>
DTD概述
•外部DTD(例3-2,例3-3)
•公用DTD
Ø每个XML文档单独定义的DTD可推广为一个系统内共享的公用DTD
Ø关键字system用于引用一个作者或组织所编写的众多XML文档中通用的DTD
Ø另一种外部DTD,一个由权威机构制定的,提供给特定行业或公众使用的DTD。
关键字是PUBLIC(例3-4)
例3-4
<!
DOCTYPE根元素PUBLIC”DTD名称“”外部DTD的URL”>
<!
DOCTYPE联系人列表PUBLIC”联系人DTD“”
•元素定义
•DTD作用
Ø告诉语法分析器它所关联的XML文档的根元素、内容及结构
Ø元素说明部分,使用元素类型声明ETD声明所有有效的文档元素
ØXML元素可以为空,也可以是纯文本或若干个子元素,子元素同时可以有各自的子元素。
DTD通过元素之间父子关系描述整个文档的结构关系。
(例3-5)
元素定义
•元素及其子元素
Ø其核心思想是采用“匹配”的逻辑(例3-6)
例3-5
<?
xmlversion=“1.0”encoding=”GB2312”standalone=”yes”?
>
<!
DOCTYPE联系人列表〔
<!
ELEMENT联系人列表ANY>
<!
ELEMENT联系人(姓名)>
<!
ELEMENT姓名(#PCDATA)>
〕>
<联系人列表>
<联系人>
<姓名>张三</姓名>
</联系人>
</联系人列表>
例3-6
<!
ELEMENT联系人(姓名,EMAIL)+>
<!
ELEMENT姓名(#PCDATA)>
<!
ELEMENTEMAIL(#PCDATA)>
•定义元素属性
•定义
Ø元素名是属性所属的元素的名字
Ø属性名是属性的名字
Ø缺省值是属性的初值
Ø属性类型用来指定其属于哪种有效属性
•属性值(例3-7,例3-8,例3-9,例3-10)
例3-7,3-8,3-9
•例3-7
<!
ATTLIST元素名属性名属性类型#REQUIRED>
<!
ATTLIST页面作者姓名CDATA#REQUIRED>
•例3-8
<!
ATTLIST元素名属性名属性类型#IMPLIED>
<!
ATTLIST页面作者
姓名CDATA#IMPLIED
年龄CDATA#IMPLIED
联系信息CDATA#REQUIRED
>
•例3-9
<!
ATTLIST元素名属性名属性类型#FIXED”缺省值“>
<!
ATTLIST页面作者
姓名CDATA#IMPLIED
年龄CDATA#IMPLIED
联系信息CDATA#REQUIRED
网站职务CDATA#FIXED”页面作者“
>
例3-10
<!
ATTLIST元素名属性名属性类型”缺省值“>
<!
ATTLIST页面作者
姓名CDATA#IMPLIED
年龄CDATA#IMPLIED
联系信息CDATA#REQUIRED
网站职务CDATA#FIXED”页面作者“
个人爱好CDATA“上网”
4.Schema的建立与应用
1.Schema的建立与应用
在前面,我们介绍了DTD,作为XML1.0规范的重要组成部分,DTD对于XML文档的结构起到很好的描述作用。
2)XMLSchema实际上也是XML的一种应用,就是将XMLDTD重新按照XML语言规范来定义,这充分体现了XML自描述性的特点。
例4-1
1.
xmlversion=“1.0”encording=“GB2312”?
>
2.
3.<学生花名册年级=“六年级”班级=“一班”>
4.<学生>
5.<姓名>李华姓名>
6.<籍贯>河北籍贯>
7.<年龄>14年龄>
8.<电话>62875555电话>
9.学生>
10.<学生>
11.<姓名>王珊姓名>
12.<籍贯>北京籍贯>
13.<年龄>12年龄>
14.<电话>82618888电话>
15.学生>
16.学生花名册>
1.Schema的建立与应用
将上述XML文档的结构用DTD来描述如下:
DOCTYPE学生花名册[
ELEMENT学生花名册(学生*)>
ATTLIST学生花名册年级CDATA#REQUIRED
班级CDATA#IMPLIED>
ELEMENT学生(姓名+,籍贯,年龄,电话?
)>
ELEMENT姓名(#PCDATA)>
ELEMENT籍贯(#PCDATA)>
ELEMENT年龄(#PCDATA)>
ELEMENT电话(#PCDATA)>
]>
1.Schema的建立与应用
上述第2行可用下面语句替换:
DOCTYPE学生花名册SYSTEM“roster.dtd”>
4)不难分析出这个XML文档的结构:
根元素“学生花名册”有两个属性,一个是“年级”,另一个是“班级”;“学生花名册”元素下是“学生”元素,该元素不包含文本,但却包含“姓名”、“籍贯”、“年龄”、“电话”四个子元素,这些子元素均只包含文本,而不包涵子元素和属性。
1.Schema的建立与应用
5)用XMLSchema来描述,可写成下面的程序,取名rosterschema.xml。
1.
xmlversion=“1.0”encording=“GB2312”?
>
2. schemas-microsoft-com: xml-data” xmlns: dt=“urn: schemas-microsoft-com: datatypes”> 3. 4. 5. 6. 7. 8. type=“fixed.14.4”/> 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 1.Schema的建立与应用 6)为了给roster.xml指定文档定义规则,roster.xml第2行可用下面语句替换: <学生花名册xmlns=“x-schema: rosterschema.xml”> 7)本XMLSchema的实现语法受到微软InternetExplorer5.0的支持。 该语法主要综合了W3C的两个Note规范XML-Data(http: //www.w3.org/TR/1998/NOTE-XML-data-0105/)和文档内容描述(DCD)(http: //www.w3.org/TR/NOTE-dcd),并加入一些扩展。 因为微软的地位以及InternetExplorer5.0的普及程度,因此该语法实现具有较强的适用性。 1.Schema的建立与应用 8)XMLSchema让开发更轻松,下面逐句分析一下rosterschema.xml。 v第1行是XML类型声明语句,指明该文档是一个XML文档,并且符合版本1.0规范;该文档采用GB2312编码。 v第2行是Schema声明语句,它包含了Schema命名空间的声明。 本例中用到了两个命名空间: 一个是xmlns=“urn: schemas-microsoft-com: xml-data”,它指定本文档是一个XMLSchema文档;另一个是xmlns: dt=“urn: schemas-microsoft-com: datatypes”>,它定义了本文档中可以使用的数据类型。 1.Schema的建立与应用 v第3、4行是属性定义语句,它定义了两个属性: 年级和班级。 v第5~8行是元素定义语句,它定义了两个属性: 年级和班级。 v第9~14行定义了本XMLSchema的二级元素: 学生,指明该元素含有包含四个子元素: 姓名、年龄、籍贯、电话。 v第15~19行定义了本XMLSchema的顶级元素: 学生花名册,指明该元素包含一个子元素: 学生,以及两个属性: 年级、班级。 v第20行是结束标记语句,它指明该XMLSchema的描述到此为止。 2.Schema的优点 v一致性。 读者不必为搞懂DTD而去重新学习,从而节省了时间。 v扩展性。 引入了数据类型、命名空间。 v互换性。 利用Schema,我们能够书写XML文档,验证文档的合法性。 通过映射机制,还可以将不同的Schema进行转换,以实现更高层次得数据交换。 v规范性。 同DTD一样,Schena定义了XML文档的整体结构,如哪些元素可以出现在文档中,元素间的关系是什么,每个元素又有哪些子元素、属性,以及元素出现的顺序和次数等等。 v易用性。 XML文档的结构已变成Schema——一种“格式良好”的XML文档,用DOM和SAX去访问当然不在话下。 XPath WhatisXPath? •XPathisasyntaxusedforselectingpartsofanXMLdocument •ThewayXPathdescribespathstoelementsissimilartothewayanoperatingsystemdescribespathstofiles •XPathisalmostasmallprogramminglanguage;ithasfunctions,tests,andexpressions •XPathisaW3Cstandard •XPathisnotitselfwrittenasXML,butisusedheavilyinXSLT Terminology •libraryistheparentofbook;bookistheparentofthetwochapters •Thetwochaptersarethechildrenofbook,andthesectionisthechildofthesecondchapter •Thetwochaptersofthebookaresiblings(theyhavethesameparent) •library,book,andthesecondchapteraretheancestorsofthesection •Thetwochapters,thesection,andthetwoparagraphsarethedescendentsofthebook Slashes(/) •Apaththatbeginswitha/representsanabsolutepath,startingfromthetopofthedocument –Example: /email/message/header/from –Notethatevenanabsolutepathcanselectmorethanoneelement –Aslashbyitselfmeans“thewholedocument” •Apaththatdoesnotbeginwitha/representsapathstartingfromthecurrentelement –Example: header/from •Apaththatbeginswith//canstartfromanywhereinthedocument –Example: //header/fromselectseveryelementfromthatisachildofanelementheader –Thiscanbeexpensive,sinceitinvolvessearchingtheentiredocument Bracketsandlast() •Anumberinbracketsselectsaparticularmatchingchild(countingstartsfrom1) –Example: /library/book[1]selectsthefirstbookofthelibrary –Example: //chapter/section[2]selectsthesecondsectionofeverychapterintheXMLdocument –Example: //book/chapter[1]/section[2] –Onlymatchingelementsarecounted;forexample,ifabookhasbothsectionsandexercises,thelatterareignoredwhencountingsections •Thefunctionlast()inbracketsselectsthelastmatchingchild –Example: /library/book/chapter[last()] •Youcanevendosimplearithmetic –Example: /library/book/chapter[last()-1] Stars •Astar,orasterisk,isa“wildcard”--itmeans“alltheelementsatthislevel” –Example: /library/book/chapter/*selectseverychildofeverychapterofeverybookinthelibrary –Example: //book/*selectseverychildofeverybook(chapters,tableOfContents,index,etc.) –Example: /*/*/*/paragraphselectseveryparagraphthathasexactlythreeancestors –Example: //*selectseveryelementintheentiredocument AttributesI •Youcanselectattributesbythemselves,orelementsthathavecertainattributes –Remember: anattributeconsistsofaname-valuepair,forexamplein –Tochoosetheattributeitself,prefixthenamewith@ –Example: @nu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10第十讲 XML语言及其应用 10 第十 XML 语言 及其 应用