1、 XML简介5.1 XML语法与结构5.2 命名空间5.3 文档类型定义与校验5.4 XML文档样式转换5.5 XML文档的解析5.6 思考题5.7 为了使异构系统间的数据交换更加容易实现,W3C于1998年正式推出了可扩展标记语言(Extensible Markup Language,简称为XML)。作为标准通用标记语言(SGML)经过优化后的一个子集,XML具有简明的结构、良好的可扩展性、通用性和开放性,因而逐步成为信息交换和共享的重要手段。目前,XML已被广泛地应用于网站开发中的许多环节,包括服务器配置、业务流程描述、程序代码编写和数据库接口设计等方面。XML的产生与HTML在应用过程中
2、产生的瓶颈问题直接相关。虽然,HTML是Web的“数据类型”,但同时还具有如下不足:n HTML是专门为描述主页的表现形式而设计的,它疏于对信息语义及其内部结构的描述,不能适应日益增多的信息检索要求和存储要求。n HTML对形式的描述能力实际也还是非常不够的,它无法描述矢量图形、科技符号和一些其他的特殊显示效果。n HTML的元素日益臃肿,文件结构混乱而缺乏条理,导致浏览器的设计越来越复杂。HTML源自于SGML,但SGML并非为Internet应用而设计,它的体系也太过复杂和庞大,很难被Internet应用所广泛使用。XML去除了SGML中繁杂而保持其优点,使其可以方便地应用于各种基于Int
3、ernet的系统中。XML文档的层次结构容易被软件所解析,同时,它还非常易于人的阅读。XML继承了SGML具有的可扩展性、结构性及可校验性,这也是HTML的主要区别:n(1)可扩展性方面:HTML不允许用户自定义标识或属性,而在XML中,用户能够根据需要,自行定义新的标识和属性名,以便更好地从语义上修饰数据。n(2)结构性方面:HTML不支持深层的结构描述,XML的文件结构嵌套可以复杂到任意程度。n(3)可校验性方面:传统的HTML没有提供规范文件以支持应用软件对HTML文件进行结构校验;而XML文件可以包括一个语法描述,使应用程序可以对此文件进行结构确认。XML技术标准体系 SGML XML
4、 Schema Namespace XBase XPath DOM XSL XLink XPointer CSS RDF P3P XHTML MathML OEB ebXML CML VoiceXML BSML OSD PIPs BizTalk OFX WAP 元语言标准 基础标准 应用标准 DTD XML的处理指令是用来给处理XML文档的应用程序提供信息的。处理指令遵循下面的格式:例如:例子中的第一个处理指令是由标签描述的XML声明,其中的信息为:该文档遵守的XML版本1.0;文档所使用的编码方式为GB2312(默认为UTF-8);Standalone属性说明文档不需要从外部导入文件;例子中
5、的第二个处理指令指定了与XML文件配套使用XSL文件mystyle.xsl。XML文档的基本单位是元素。元素是一个信息块,它由一个元素名和一个元素内容构成。元素的名称还应遵守如下规则:l(1)元素名称中可以包含字母、数字以及其它字符;l(2)元素名称不能以数字或“_”(下划线)开头;l(3)元素名称不能以“xml”(包括其各种大小写形式)开头;l(4)元素名称中不能包含空格;l(5)元素名称中间不能包含“:”(冒号)。Source Code Section of C-Sharp Corner Source Code Section of C-Sharp Corner GDI+source Co
6、de Section of C-Sharp Corner Source Code Section of C-Sharp Corner 按照XML元素所包含的内容,可以将将XML元素分为以下四种形式:l(1)包含数据内容的元素:这些元素中只包含数据。例如abc。l(2)包含子元素内容的元素:元素包含一个或多个子元素。例如。l(3)空元素:元素中既不包含数据内容又不包含子元素。例如,可以简写为。l(4)包含混合内容的元素:元素既包含数据内容又包含子元素。例如abc。XML与HTML有很多相似性,但在语法上XML比HTML更为严格。所以在编写XML文档时需要注意下列细节:l(1)XML是大小写敏感的
7、,例如和是不同的元素;l(2)XML的每一个元素都必须有对应的结束标签,即使是空元素也必须要写一对标签;l(3)XML中的元素之间可以嵌套而形成子元素,但不能交叉。例如This text is bold and italic在XML的语法中是错误的;l(4)空格也可以是XML文档的数据内容。XML属性提供一种定义复杂元素的解决方案。属性由属性名和属性值组成。元素的属性说明只能在元素起始标签或空元素标签中出现,属性值必须放置在一对双引号中,例如:Source Code Section of C-Sharp Corner与元素名一样,属性名也是大小写敏感的。如果属性名为“ID”,则说明该属性可以作
8、为元素的索引。对于XML元素来说,属性并不是必须的。有时我们也可以将相同的信息放到一个子元素中,但对于比较简单的上下文信息,使用属性比使用子元素更方便,而且表达的意思也更清晰。命名空间(Namespaces)是XML规范的重要组成部分,它可以对XML元素或属性的命名进行扩展:采用命名空间方式后,XML的元素名称将由一个前缀名称和一个本地名称组成,它们用冒号分隔。前缀名称采用统一资源标识符(URI)的格式,相当于整个名称中的“姓”;本地名称则是一个普通的字符串,相对于整个名称中的“名”,但要求在同一个前缀名称中不能重复。在互联网中,由于不同公司或组织的统一资源标识符(URI)不同,加上在同一公司
9、或组织内部的本地名称保持唯一,则前缀名称和本地名称的命名组合可以生成互联网中的唯一名称。有两种类型的 URI统一资源定位器(URL)和统一资源名称(URN)都可以用作命名空间标识符,其中URL的方式更为常用。命名空间标识符仅仅是字符串,并不代表在互联网中可以访问到相应的资源。命名空间的语法如下:xmlns:prefix=url of name其中“xmlns:”是必须的属性。“prefix”是命名空间的别名。例如:Evening Batch 上述代码中,batch-list,batch等元素都是在http:/.ac命名空间中定义的,而该命名空间的别名为ins。对文档的格式和数据有效性验证可以对
10、应用程序之间的数据交换提供保障。XML标准先后推荐了两种XML文档验证方式,包括:文档类型定义(DTD)和XML架构(XML Schema)。文档类型定义(Document Type Definition,简称为DTD)是一套语法规则,它可以作为XML文档的模板,同时也是XML文档的有效性(valid)校验标准。在DTD中可以定义一系列文档规则,包括文档中的元素及其顺序、属性等。XML架构(XML Schema)是一种文档类型定义方式,与DTD的最大区别在于:XML架构本身也是XML文档。XML架构文档之于 XML 实例文档如同面向对象系统中对象类之于实例对象。因此,一个XML架构文档往往对应
11、了多个XML实例文档。DTD 文档描述了XML文档的结构:假定要使用以下 XML 词汇描述员工信息:Mike 2007-12-02 42000.00在XML中使用CSSl HTML将数据内容与表现融为一体,而XML主要用于数据内容的描述。但当用户希望以一定方式(比如网页方式)观看数据时,就需要将XML的表现方式与其内容进行结合。使用CSS可以为XML文档提供样式描述。Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 CATALOG ba
12、ckground-color:#ffffff;width:100%;CD display:block;margin-bottom:30pt;margin-left:0;TITLE color:#FF0000;font-size:20pt;ARTIST color:#0000FF;font-size:20pt;COUNTRY,PRICE,YEAR,COMPANY display:block;color:#000000;margin-left:20pt;在cd_catalog.xml文件中添加CSS说明指令,形成以下文件:可扩展样式语言(XML Style Language,简称为XSL)可以将X
13、ML文件作为原料,使用选择、测试和匹配等方式,将XML转换为目标文档,比如HTML。要从XML里提取相关的数据进行样式转换,就要用到XSL提供的模式查询语言。所谓模式查询语言,就是通过相关的模式匹配规则表达式从XML里提取数据的特定语句。模式查询语言可分为三种:l 选择模式:、和l 测试模式:和l 匹配模式:选择模式语句将数据从XML中提取出来,是一种简单获得数据的方法。选择模式语句的元素中都有select属性,它设定了选择的条件。应用XSL选择模式语句找出文档中满足设定条件的元素或元素的集合进行样式转换。文档对象模型(Document Object Model,简称为DOM)为编程语言提供了
14、一个读写XML文档的接口,通过这一接口可以访问到XML文档内容、结构以及样式数据。DOM是以树形结构的视角看待XML文档,XML文档中的每个成分都是树中的一个节点,也是对应的一个DOM对象。应用程序通过存取这些对象就能够存取XML文档的内容。以下是XML文档中各成分与树形结构节点之间的对应关系:l(1)整个XML文档是一个文档节点;l(2)每个XML元素是一个节点;l(3)包含在XML元素中的数据内容是文本节点;l(4)每一个XML属性是一个属性节点;l(5)注释属于注释节点。以JAXP(Java API for XML Processing)为例,DOM的基本对象有5个SAX(Simple
15、API for XML)并不是由W3C所提出的标准,它是一种技术社区的产物。与DOM比较而言,SAX是一种轻量型的方法。如前面所描述的,采用DOM处理XML文档时需要读入整个的XML文档,然后在内存中创建DOM树,并生成每个Node对象。如果XML文档非常大,那么运行的效率和资源的消耗都不够理想。一个较好的替代解决方法就是SAX。SAX是以事件驱动的方式处理XML文档。也就是说,SAX并不需要一次性读入整个文档,而文档的读入过程也就是SAX的解析过程。总的来说,DOM编程相对简单,但是速度比较慢,占用内存多,而SAX编程复杂一些,但是速度快,占用内存少。所以,我们应该根据不同的环境选择使用不同的方法。SAX的解析过程(1)XML的产生和发展与HTML的局限性有关系,请列举HTML的主要不足?(2)简述XML继承了SGML的主要特性。(3)XML元素在命名是需要遵守哪些原则?(4)XML命名空间的作用是什么?(5)查找相关资料,进一步学习,写出符合下面DTD声明的XML文档。(见教材)(6)查找相关资料,进一步学习,写出符合下面XML架构的XML文档。(见教材)
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。