XML基础考试方式+成绩评定笔试闭卷单项选择(2×20=40)填空(2×15=30)简答题(30)◦程序填空◦简答成绩评定:60%卷面+40%平时第1章XML概述eXtensibleMarkupLanguage可扩展标记语言是由W3C(WorldWideWebConsortium,万维网联盟)推出的新一代网络数据表示、传递和交换的标准,是Internet环境中跨平台的、依赖于内容的技术。XML与HTML比较HTMLXML有固定标签无固定标签,可自定义标签元素与属性的名称不区分大小写元素与属性名称区分大小写标签用于展示元素的外观标签用于组织数据,样式可独立于元素之外没有扩展性可扩展客户端比较局限于浏览器客户端可以使用到XML解析器的应用程序有标准规范的封闭性语言可自定义标签的开放性语言易于学习入门容易,出师难空标签不需特殊语法空标签需要特殊语法忽略多余的空白字内容中的空白有意义第2章规范的XML文件规范的XML文档规范性一个规范的XML文件应当满足如下语法规则:◦XML文件用“XML声明”开始◦XML文件有且仅有一个根标记◦XML文件的非根标记都必须封装在根标记中◦非空标记必须由“开始标记”与“结束标记”组成◦空标记没有“开始标记”和“结束标记”◦XML文件的标记必须是树型结构XML声明规范的XML文档第一行必须为XML声明声明格式?xmlversion=“1.0”encoding=“编码”standalone=“yes|no”?◦version是必须声明的属性,表示XML文件使用的版本类型,目前只能使用1.0◦encoding为可选项,规定XML文件编码使用的字符集,默认为UTF-8◦Standalone为可选项,表示是否有外部实体引用,默认取noXML元素XML元素由开始标记、结束标记与内容三部分组成标记◦非空标记语法格式标记的名称属性列表…标记名称◦空标记语法格式空标记的名称属性列表/空标记的名称/标记名称命名规范:◦不能以数字开头,必须是字母或下划线◦标记名称可以包含数字、中文、英文、_、.、-等字符,不能包含空格◦标记区分大小写◦非空标记应该对称的嵌套非空标记内容?xmlversion=1.0encoding=GB2312?顾客¶□□张三丰¶□□日期2007年3月2日¶□□/日期¶□□商品¶□□□□脸盆¶□□/商品¶□□售价20/售价¶/顾客标记“顾客”包含的文本数据:¶□□张三丰¶□□¶□□¶□□¶标记“顾客”包含的子标记“日期”的文本内容:2007年3月2日¶□□(12个字符)“商品”的文本内容:¶□□□□脸盆¶□□(10个字符)“售价”的文本内容:20(2个字符)特殊字符的使用实体引用特殊字符意义<小于号>大于号&&和或连接符'‘单引号"“双引号属性名命名规则命名规则和元素命名规则相似属性命区分大小写属性值必须使用单引号或双引号属性值使用特殊字符时,必须使用字符引用或实体引用名称空间XML名称空间是XML元素解决多义性和名字冲突问题的方案。名称空间定义◦名称空间通过使用声明名称空间来建立,分为有前缀名称空间和无前缀名称空间。◦有前缀的名称空间的语法:xmlns:前缀=“名称空间URI”如:xmlns:person=“USTB.tj◦无前缀的名称空间声明语法:xmlns=“名称空间URI”如:xmlns=“tj.ustb.edu.cn”名称空间作用域一个标记如果使用了名称空间声明,那么该名称空间的作用域是该标记及其所有的子孙标记。如果一个标记中声明的是有前缀的名称空间,那么该标记及其子孙标记如果准备隶属该名称空间,必须通过名称空间的前缀引用这个名称空间,使得该标记隶属于这个名称空间。如果一个标记中声明的是无前缀的名称空间,那么该标记及其子孙标记都默认地隶属于这个名称空间。尽管子标记可以通过名称空间的前缀来引用父标记声明名称空间表明自己隶书该名称空间,但子标记也可以重新声明名称空间。第3章有效的XML文件DTD是DocumentTypeDefinition(文档类型定义)的缩写。DTD文件的扩展名必须是“.dtd”,保存时所选择的编码必须和其关联的XML文件一致。根据DTD文件定义位置的不同,分为内部DTD和外部DTD。XML关联DTD内部DTD语法格式!DOCTYPE根标记名称[!ELEMENT子元素名称(#PCDATA)]外部DTD有两种形式的关联,语法格式!DOCTYPE根标记名称SYSTEM“DTD-URL”DTD元素声明元素类型声明语法:!ELEMENT标记名称标记的约束条件标记的约束条件◦#PCDATA◦子标记型◦混合型◦EMPTY◦ANY模式限定符元素的频率即出现的次数使用加号(+)、星号(*)或问号(?)来指定。◦+出现至少1次◦*出现任意次,可以不出现◦?出现一次或不出现DTD属性声明使用ATTLIST属性列表声明元素的属性信息。!ATTLIST标记名称属性名称属性类型属性默认值姓名身高=“170cm”刘小明/姓名!ATTLIST姓名身高CDATA#REQUIRED属性默认值#REQUIRED#IMPLIED#FIXED默认值默认值!ELEMENTDeskEMPTY!ALLLISTDeskinCDATA#FIXED“room”!ALLLISTDeskinCDATA#REQUIRED!ALLLISTDeskinCDATA“room”实体的声明与引用每个XML文档可以由许多来自不同的数据源或文件中提取所需要的数据和声明。此时就需要使用一个载体把提取出的数据或文本片段来载入到XML文档中,这个载体就是实体。目的:重复利用、一致性分类:内部普通实体•实体定义格式:!ENTITYname“text”•实体引用:&name;注意:◦在XML文档中引用“文本”普通实体。◦不可以在DTD中引用普通实体。外部普通实体外部普通实体就是在XML文档以外包含的数据,这些数据通过URI定位的资源引入到文档中。实体定义格式◦!ENTITYnameSYSTEM“URI”外部文件由个人或小组所定义并认可实体引用:&name;在XML文档中引用外部XML文档或DTD普通实体。内部参数实体•定义格式:!ENTITY%name“text”•引用格式:%name;•在DTD中引用“文本”参数实体。外部参数实体外部参数实体使用较小的DTD建立较大的DTD,即一个DTD可以链接到另一个DTD上。语法格式:◦!ENTITY%nameSYSTEM“URI”◦%name;在DTD中引用外部DTD参数实体。第10章XMLSchema模式简介XMLSchema规范是W3C的正式推荐标准,用于定义xml文件以改善DTD的一个子集XMLSchema文档是使用XML语法创建的xsd:schema为根元素◦结构:xsd:schemaxmlns:xsd=“标准名称空间”元素声明部分或属性声明部/xsd:schema第10章XMLSchema模式简介XMLSchema规范是W3C的正式推荐标准,用于定义xml文件以改善DTD的一个子集XMLSchema文档是使用XML语法创建的结构:xsd:schemaxmlns:xsd=“标准名称空间”元素声明部分或属性声明部/xsd:schemaSchema引用验证XML文档,必须指定Schema的位置。模式位置可以利用带有名称空间模式的xsi:schemaLocation属性以及不带名称空间XML模式的xsi:noNamespaceSchemaLocation属性指定具体使用哪个属性,由Schema文档中是否定义targetNamespace决定Schema元素声明声明元素语法:elementname|ref|type|default|fixed|maxOccurs|minOccursannotation?,((simpleType|complexType)?,(unique|key|keyref)*))/element示例xs:elementname=“书”xs:complexTypexs:attributename=“编号”type=“xs:string”use=“required”//xs:complexType/xs:element转换为等价的DTD声明第5章XML与XSLXSL(eXtensibleStylesheetLanguage)可扩展样式表语言XSL本身是一个完整的xml文档,用以实现文档内容和表现形式的分离XSL包含3部分:◦用于转换XML文档的语言——XSLT◦用于在XML文档中导航的语言——XPath◦格式化XML文档的语言——XSL-FOXSL工作原理在转换的过程中,XSLT用XPath来定义源文档中与一个或多个预先确定的模板相匹配的部分。当找到了一个匹配时,XSLT就将源文档中的匹配部分转换成结果文档;而源文档中不与任何一个模板匹配的部分最终在结果中保持不变。XML文档结构树一个结构完整的XML可以转换为一棵结构完整的结构树。结构树从根节点开始(注意,根节点不是根元素)。根节点在XSL中使用”/”来代表,根元素用其名称来代表。XML文档引用XSLXML文档使用xml:stylesheet处理指令引用样式单。?xml-stylesheettype=“text/xsl”href=“url”?XML文件XSL文件HTML文件关联变换源文件目标文件XSL文件基本结构根标记xsl:stylesheet根标记内容/xsl:stylesheet每个模板规则都是一个xsl:template元素。xsl:templatematch=“标记匹配模式”模板内容/xsl:template每个xsl:template元素都有一个match属性,用来指定要将此模板规则应用于输入文档的哪个节点。主模板主模板:样式表文件有与XML文件根标记相匹配的模板,标记匹配模式必须为“/”示例:xsl:templatematch=“/”主模板内容/xsl:templateXSL处理器从主模板开始实施XSL变换调用模板标记xsl:apply-templates元素用于调用模板,该元素有一个select属性,用来指定元素的处理节点集,调用模板。如果省略,处理引擎将处理元素的子节点。格式:xsl:apply-templatesselect=“标记匹配模式”/◦空标记示例学生列表学生学号06041232/学号姓名王力/姓名性别男/性别出生年月1983年8月/出生年月/学生学生班级=“06网络1”学号06032123/学号姓名李熙/姓名性别女/性别/学生/学生列表/学生列表/学生[@班级]//学生[出生年月]访问节点访问单个节点◦xsl:value-of指令用于将节点的内容复制到输出结果中,指令的select属性用于选择被提取值的节点。即具体元素的内容提取出来。访问多个节点◦使用xsl:for-each元素来访问所有符合条件的子节点。对输出节点的选择xsl:if◦xsl:if的test特性含有选择表达式,用来计算布尔值(即”真”与”假”)。如果表达式式为”真”,则输出xsl:if元素的内容;否则,不输出xsl:if元素的内容。xsl:choose◦xsl:when提供了各种条件的选择,而xsl:otherwise元素的内容是在xsl:when条件不成立的时候进行执行。第6章DOM解析器DOM是DocumentObjectModel缩写,文档对象模型。DOM是一个文件对象所组成的模型。对XML应用开发