已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章xml模式定义-xsd,什么是schema,xmlschema是用一套预先规定的xml元素和属性创建的,这些元素和属性定义了xml文档的结构和内容模式。xmlschema规定xml文档实例的结构和每个元素/属性的数据类型。,数据库,xml文档数据,表结构,sql,xpath,schema,为何需要schema,dtd的局限性dtd不遵守xml语法(写xml文档实例时候用一种语法,写dtd的时候用另外一种语法)dtd数据类型有限(与数据库数据类型不一致)dtd不可扩展dtd不支持命名空间(命名冲突)schema的新特性schema基于xml语法schema可以用能处理xml文档的工具处理schema大大扩充了数据类型,可以自定义数据类型schema支持元素的继承schema支持属性组,4.1schema的文档结构,所有schema文档使用schema作为其根元素,用于构造schema的元素和数据类型来自/2001/xmlschema命名空间,本schema定义的元素和数据类型属于http:/mynamespace/myschema命名空间,目标命名空间不一定遵循本schema(若是qualified则必须遵循),4.2schema的数据类型,简单类型内置的数据类型(built-indatatypes)基本的数据类型扩展的数据类型用户自定义数据类型(通过simpletype定义)复杂类型(通过complextype定义),用户自定义的简单数据类型的语法,自定义数据类型的内容模式,restriction中可以使用的关键字及含义,复杂数据类型的声明语法,内容模型定义(包括子元素和属性的声明),complextype元素使用示例,complextype与simpletype区别,simpletype类型的元素中不能包含元素或者属性。当需要声明一个元素的子元素和/或属性时,用complextype;当需要基于内置的基本数据类型定义一个新的数据类型时,用simpletype。,4.3模式文件中的元素声明,element元素作用:声明一个元素属性:nametyperefminoccursmaxoccursfixeddefault示例:,声明元素的方法,1,使用内置的数据类型,声明元素的方法(续),使用用户定义的simpletype,2,声明元素的方法(续),使用complextype,3,4.4模式文件中的属性声明,required、optional、prohibited,简单类型复杂类型,示例:,4.5在xml模式中创建元素和属性组,sequence:指定组中的子元素按照一定顺序进行出现group:用通用名组合成组choice:同一个时刻只能使用组中子元素的其中之一all:组中的子元素在父元素内可以按照任意顺序出现attributegroup:创建属性组。,sequence元素,作用:给一组元素一个特定的序列示例:,choice元素,作用:允许唯一的一个元素从一个组中被选择属性:minoccurs/maxoccurs示例:,group元素,作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用属性:name/ref示例:,attributegroup元素,作用:把一组属性声明组合在一起,以便可以被复合类型应用属性:name/ref示例:,4.6模式重用,模式的一个关键特征是支持高度重用性。在一个模式中声明的组件能够被另一个模式重用。include元素import元素,include元素,include元素用来包含或引用定位在一个明确地址的外部模式。语法:include元素包含2个属性:id用来指定元素的id。id必须是唯一的,但id属性是可选择的。schemalocation指定模式文件的物理地址。,目标命名空间,include元素允许引用任何在同一目标命名空间的上下文中被定义的外部模式。使用schema元素的targetnamespace属性来声明目标命名空间。.,import元素,import和include完成同样功能,但import允许访问来自多个不同目标命名空间的外部模式。语法:import元素包含3个属性:id用来指定元素的id。id必须是唯一的,但id属性是可选择的。namespace指定被引入模式所属名称空间uri。schemalocation指定模式文件的物理地址。,4.7本章小结,schema的文档结构xsd的数据类型xmlschema中元素的声明语法xmlschema中属性的声明语法在xml模式中创建元素和属性组模式文档的重用,第5章xml文件的显示css和xsl,呈现xml文件,原始的xml文件可以用ie6.0(或者更高的版本)或者netscape6来察看,但是如果希望让xml文档象web页那样显示就必须添加一些额外的显示信息。,样式表简介,为什么需要样式表xml数据本身并不包含数据显示的信息什么是样式表描述结构文档表现方式的文档使用样式表的意义数据或内容与表示层分开w3c推荐的样式表标准:css级联样式表xsl可扩展样式表,样式表,定义:包含一个或多个xml文档的格式化规则的文档。包含指示web浏览器如何将原文档的结构翻译为一个能够显示的结构的代码。任务:将xml文档转换为另一种结构描述如何表达被转换的信息,5.1级联样式表csscascadingstylesheets,是一个文本,包含特殊元素格式特征的一个或者更多的规则和定义。它控制xml文档和html文档中的标签如何被格式化。,css的作用?,1.能把xml文档翻译成特定的目标,将xml文档转换成另一种结构。包括:创建一个不变的文本(比如标签和标题)指定提取所需数据的过滤器改变元素和属性的顺序排列内容完成复杂的转换,根据存在的内容计算值2.描述如何表达被转换的信息。包括:屏幕或页面的布局将转换的内容分配成列表和段落属性的规范(例如间距、页边框、对齐和字体),css的语法,语法如下:elementnameproperty1:value;property2:value;elementname指定元素的名字property1和property2为属性名value指定属性名的不同的值,css示例,hello,there!goodmorning!howareyou?,xsampdoccolor:navy;display:blockgreetingfont-family:arial;font-size:32pt;width:30em;color:redquestionfont-size:x-large;color:blackanswerfont-size:20pt;color:blue,字体属性,css的局限,css可以格式化xml文档,能够很好的控制输出的样式,比如色彩、字体、大小等,只能是文档的样式或外观。css不能重新排序文档中的元素。css不能判断和控制哪个元素被显示,哪个不被显示。css不能统计计算元素中的数据。,5.2可扩展样式表xsl,什么是xslcsshtmlxslxml,什么是xsl?,xsl(extensiblestylesheetlanguage),可扩展样式表语言,是xml的首选样式表语言,它要比html使用的css复杂得多。xsl是www协会推荐的一种标准。它包括3部分:一个转换xml文档的方法;xslt一个定义xml部分和模式的方法;xpath一个格式化xml文档的方法。xsl格式对象,5.2.1xslt,xsl在转换xml文档时分为两个过程,第一转换文档结构;其次将文档格式化输出。这两步可以分离开来并单独处理第一步的转换过程,也就是xslt。,xslt处理器的工作,xslt样式表,xml文档,msxml解析器,xslt树,源树,xslt处理器,结果树,xslt和css,5.2.3xsl文档结构,1,xml声明,2,xsl声明,根元素,3,xsl命名空间,/1999/xsl/transform基于推荐标准/tr/wd-xsl基于工作草案,stylesheet元素,stylesheet元素是所有xslt样式表的根元素。它是一个声明语句,通知浏览器这是一个样式表文件。语法:前缀xsl包含了xslt的名称空间uri的引用,确保在xslt样式表中使用的元素和属性都要依照w3c的规定标准使用。,5.2.2xpath,xpath是定义xml文档各部分的语法xpath使用路径定义xml元素xpath定义了一个标准函数库xpath是xslt的一个主要元素xpath不是用xml书写的xpath是一个w3c标准,类似传统的文件路径,xpath使用路径表达式识别xml文档里的节点。这些路径表达式看起来很象计算机的文件系统:c:/xpath/1.htm,xpath被用于xslt,xpath是xslt的一个主要元素。没有xpath知识,我们将无法建立一个xslt文档。用于match,select,test属性xpath作为一个寻址xml文档各部分的语言,于1999年11月16日作为w3c推荐标准发布。xpath被设计用于xslt、xpointer和其它xml解析软件。,xpath语法,xpath使用路径表达式定位xml文档内的节点。xml文档可以看作是一个节点树(非常类似于计算机的树形文件夹)。下面的xpath表达式选择catalog元素的所有cd元素的所有price元素:/catalog/cd/price,xpath数据类型2-1,节点集(node-set)节点集是通过路径匹配返回的符合条件的一组节点的集合。其它类型的数据不能转换为节点集。这种数据类型是xml文档树的特有产物布尔值(boolean)由函数或布尔表达式返回的条件匹配值,与一般语言中的布尔值相同,有true和false两个值。布尔值可以和数值类型、字符串类型相互转换。,xpath数据类型2-2,字符串(string)字符串即包含一系列字符的集合,xpath中提供了一系列的字符串函数。字符串可与数值类型、布尔值类型的数据相互转换。数值(number)在xpath中数值为浮点数,可以是双精度64位浮点数。另外包括一些数值的特殊描述,如非数值nan(not-a-number)、正无穷大infinity、负无穷大-infinity、正负0等等。number的整数值可以通过函数取得,另外,数值也可以和布尔类型、字符串类型相互转换。,xpath表达式,xpath将xml文档看作由节点构成的层次树。每棵树包括:元素节点;属性节点;文本节点;处理指令节点;注释节点和命名空间节点。我们可以通过编写xpath表达式来定位树中特定的节点。对一个文档使用xpath会得到以下几种结果:一个单独的节点;一组节点;一个布尔值;一个浮点数;或者一个字符串。,xpath定位路径,一个定位路径表达式返回一个节点集。定位路径表达式一个定位路径可以是绝对的或相对的。绝对定位路径以一个斜线(/)开头,而相对定位路径没有。,路径匹配,位置匹配(多用于value-of),(注意:没有first()函数),属性与属性值匹配(多用于比较),xpath函数,xpath包含转换数据的函数库。xpath函数库xpath函数库包含一套用于转换和替换数据的核心函数。,节点集函数,count()返回被选择的元素的数目id()通过元素的唯一id选择元素last()返回最后最后一个节点式第几个节点(等同于总共有几个节点)local-name()返回节点集中第一节点的localnamename()返回元素的名称namespace-uri()返回节点集中第一个节点的命名空间的uriposition()返回是第几个节点,字符串函数2-1,concat()将参数字符串连接后返回contains()如果第一个字符串包含第二个字符串,则返回真,否则返回假normalize-space()将字符串中前后空格删除后返回starts-with()如果第一个字符串以第二个字符串开头则返回真,否则返回假string()将一个对象转换为字符串后返回string-length()返回一个字符串的长度,字符串函数2-2,substring()从字符串的某个偏移位置开始返回指定长度的字符串substring-after()返回字符串中从开始到某一字符串第一次出现的位置后的字符串substring-before()返回字符串中从开始到某一字符串第一次出现的位置前的字符串translate()替换一个字符串中字符,数值函数,ceiling()返回不小于参数的最小整数floor()返回不大于参数的最大整数number()转换参数为一个数字round()对参数四舍五入sum()返回所有参数的和,布尔函数,boolean()将参数转换为布尔值false()返回假not()如果参数是假,则返回真,否则返回假true()返回真,5.2.4xsl模板,模板是xsl中最重要的概念,xslt文件由一个一个的模板组成,任何一个xslt文件至少包含一个模板。模板可以被拼装组合,也可以单独成块,不同的模板控制不同的输出格式使用模板的优点:如同程序设计中的模块化设计有利于人员分工、协作,模板(template),模板规则由两部分组成:匹配模式(matchpattern)和执行。两部分对应的语法为template和apply-templates。,xsl模板元素,定义一个模板调用一个模板(函数调用),xsl模板示例poem1.xml,李白静夜思床前明月光,疑是地上霜。举头望明月,低头思故乡。王之涣登鹳雀楼白日依山尽,黄河入海流。欲穷千里目,更上一层楼。,poem1.xsl,5.2.5xslt的元素语法,节点选择语句循环判断语句排序语句用于选择的元素xsl:if和xsl:choose,节点选择语句,用来取出xml文件中被选择的元素或属性的内容,语法如下:输出指定节点的取值,用select属性进行限定如果要显示属性的值,必须在属性名之前,加“”符号作为前缀。value-of元素是一个空元素,在结束前,应有“/”。,循环判断语句,循环选择多条数据语法:,排序语句,对xml源文档的元素进行重新排序,sort元素没有子元素,它用作for-each或apply-template的子元素。在/1999/xsl/transform里定义;排序的语法:data-type:表示被排序的数据类型,可以是数字、文本或用户自定义,缺省是文本。,单条件判断语句,对匹配条件进行判断,如果为真就执行条件内部的规则。语法用元素的名称作为匹配条件用元素内容作为匹配条件用元素的属性值作为匹配条件,多条件判断语句,多条件的分支判断语法.,5.2.6缺省的模板规则,xsl定义了两个缺省的模板规则,在所有的样式表中都隐性地包括这两个规则。第一个缺省规则将模板应用于所有元素的子元素,以递归的形式,降序排列元素的结构树;这种方式可确保应用于元素的所有模板规则都能够被说明。第二个缺省规则应用于下一个节点,将这些节点的值复制到输出流中。这两个规则共同使用,即使是没有任何元素的空的xsl样式表,仍然可以产生把输入的xml文档的原始字符数据作为输出内容的结果。,5.2.7合并多个样式表,xsl:import元素xsl:include元素,xsl:import元素,import元素用来将一个xslt样式表导入另一个样式表中。普通形式:其中href属性值必须输入xslt样式表的地址或定位。import元素必须立即出现在stylesheet元素之后的一个顶级元素。,xsl:include元素,xsl:include元素也是顶级元素,语法类似于xsl:import元素。它将另一个样式表导入到当前的样式表中所指定的位置处(确切的说,它将远程文档中xsl-stylesheet元素的内容复制到当前文档中)。xsl:include元素的href属性提供要导入的样式表的uri。xsl:include元素可放在顶级处于最后一个的xsl:import元素之后的任何地方。与xsl:imporlt元素的不同:xsl:include元素所包括的规则与执行包括的样式表中的规则具有同样的优先级。,小结,css的基础知识可扩展的样式语言(extensiblestylelanguage,xsl)xpath表达式xsl文档的结构xslt的元素语法合并多个样式表,第6章xml和microsoftsqlserver2005的集成,6.1microsoftsqlserver2005对xml的支持,将关系数据作为xml公开将xml文档拆分到行集合通过使用xml数据精简(xdr)方案,将xml方案映射到数据库方案,从而创建xml视图使用xpath在xml视图上创建查询在sqlserver中通过http公开数据,sqlserver2005中对xml数据访问支持的增强,增加了专门的xml数据类型提供了对xquery的全面支持提供了xmldml新的数据库引擎还提供面向xml数据的层次性索引通过增强分布式查询的openrowset的功能,提高同构甚至异构系统间批量xml数据的处理效率。对于sqlserver2000引入的forxml子句和openxml()也提供了更好的支持。,6.2使用存储在sqlserver中的数据生成xml文档,select表1.列名1,表2.列名2from表1,表2forxmlmode其中,mode指定使用raw、auto、explicit或path模式。,forxml支持四种xml转换模式,raw模式将查询结果集中的每一行映射到一个xml元素,并将行中的每一列映射到一个属性。auto模式支持生成嵌套的xml元素,默认情况下,from子句中的每个表(在select子句中至少列出一列)将映射到一个xml元素,select子句中的列将映射到属性。explicit模式能够最大限度地控制由查询结果生成的xml的格式。path模式通过将列名解释为类似xpath的语法,将select查询返回的行集合中的列映射到属性和子元素。,6.3把xml数据插入到sqlserver数据库的表中,使用系统存储过程sp_xml_preparedocument的openxml函数把xml数据插入数据库。系统存储过程sp_xml_removedocument可以用来删除xml文档的内部表示。,sp_xml_preparedocument的语法,sp_xml_preparedocumenthandleddocoutput,xmltext其中:handleddoc代表xml文档句柄的整数值;xmltext代表原始的xml文档的文本值。,sp_xml_removedocument的语法,sp_xml_removedocumenthandleddoc其中:handleddoc代表xml文档句柄的整数值,函数openxml的语法,openxml(handleddoc,rowpattern,flagvalue)withtablename其中:handleddoc代表xml文档句柄的整数值;rowpattern代表来识别xml文档的节点xpath模式的可变长字符串的值;flagvalue代表xml数据和相关的行集之间的映射的整数值。如果值为1表示要对数据库中的字段做基于属性的映射;如果值为2表示要对数据库中的字段做基于元素的映射;tablename代表数据库中的表名。,6.4sqlserver2005中的xml数据类型,xml数据类型是一用专门用于保存和操作xml的数据类型。它是以blob的二进制形式保存的,一个xml类型字段可以保存2gb的xml代码,层次可达128层。,使用sqlserver2005中的新xml数据类型,可以实现:,创建既包含关系列,又包含有xml类型列的表。通过与xml方案集合关联,创建有类型的xml列类型。对涉及其他xml或非xml类型列的xml列进行限制,用以强制实现业务规则。创建可用于存储xml数据类型实例的xml类型的变量。为存储过程或用户定义的函数创建xml类型的参数。从用户定义的函数中返回xml类型值。将使用新的type指令获得的forxml查询结果分配给xml类型的变量。运行xquery子集,在xml结构内查询并转换xml数据。根据xml类型的列创建计算列。为xml类型的列创建xml索引,以提高查询性能。使用xmldml对xml实例进行元素级的插入、删除和更新操作。将xml类型数据的实例传递到sp_xml_preparedocument,以准备xml文档的内存中表示。使用xquery和xmldml编写包含关系和xml列的跨域查询。使用cast和convert,分别将xml类型转换为varchar或nvarchar类型。使用cast或convert,将字符串数据类型转换为xml类型。,xml类型中用于查找和更新的方法,query()方法,可以提取xml文档的片段value()方法,通过指定xquery表达式以及需要返回的sql类型,可以从xml实例中提取标量值exist()方法用于确定xml实例中是否存在某一元素,如果存在则返回1,否则返回0odes()方法用于从xml实例片断产生一个新的xml实例modify()方法,可以对xml数据进行更新。,6.5本章小结,microsoftsqlserver2005对xml的支持如何从sqlserver2005中获得xml数据如何将xml数据插入到数据库中sqlserver2005中提供的一个新的数据类型xml数据类型。,第7章xlink和xpointer,link链接,如果在这个世界上每部电脑中的每个资料块都能够被识别、定址及链接,那将是十分令人振奋的事。link就是说明如何在网络上做到这点的规格文件。,链接的定义,1.一个链接可以有一个、二个甚至是很多个ends,而每一个end都可以是指标,事实上链接本身可以很明确地指定是外部(externally)链接,因而连接到每一个end。2.一个链接并不一定要有方向,但它也可以有很多或是没有方向,除此之外,链接的方向不要一定得从“context”到“part”才行。3.链接的end可以是某一范围,不一定是要链接到整个resource或某一地方。4.链接点的表现方式乃视链接资料的角色而定,撷取和取代只是可能性的行为之一。是故,使用者设定链接为撷取资料并取代画面只是链接功能的表现之一。,html超链接的局限性,1.只能指向单个文档2.链接是单向的为了克服html超链接的局限性,w3c推荐使用两个新型的xml链接机制,他们就是xlink和xpointer。,7.1xlink,定义:是xml链接语言。是一个为了提高和改善xml文档的链接能力设计的规范。允许xml文档在多个文档之间创建链接关系,并创建与被链接文档相互独立的源文档。,7.1.2简单链接,简单链接非常类似于html的链接,但是简单链接比在html中使用标记创建的链接要简单。声明简单链接时,可以使用以下属性:,创建简单链接要使用的属性4-1,href:链接的目标uri。用来指定链接的目标。role:给应用程序提供链接的补充说明的方法。使用xlink的应用程序可以通过查阅此属性来得到一个链接角色的信息。title:可以指定一个给用户提供信息的标签。当role属性为系统和应用程序提供信息时,此属性为用户提供辅助的信息。,创建简单链接要使用的属性4-2,show:该属性定义了如何向用户显示目标内容。常取以下三个值:new目标内容应该显示在独立的环境中(对于浏览器,应该是新的浏览器窗口)。将xlink:show属性设置为new,这与html中target=_blank的意思是一样的。replace目标内容应该替换原来环境中的源内容(对于浏览器,这是超链接的常规特征。embedded内容应该嵌入源文档的链接位置。选择embed与在html页面中嵌入一张图片非常相似目标资源将源文档中定义的链接替换掉。xlink:show属性其他可能的值还包括other和none。other值的意思是使链接按具体的实现进行动作,并表示它应该在链接中寻找其他信息来表明它该如何动作。none值也是将链接的动作留给具体实现来决定,但它并不表示在链接内有何种暗示。,创建简单链接要使用的属性4-3,actuate:该属性定义了何时触发链接。它可以取以下两个值:onrequest用户必须采取某些操作才能够触发链接。它类似于html超链接的工作方式,用户必须点击链接的文本才能够激活链接。onload加载源文档时,链接将自动激活。当xlink:show属性为embedded时,该属性最有用,但是当xlink:show为new时,也可以使用该属性。例如,打开源文档时,自动打开另一个环境窗口,并加载目的信息。,创建简单链接要使用的属性4-4,type:指定作为一个元素被创建的链接的类型。分为:simple:简单链接。类似html的超链接。extended,resource,:允许创建一个指向多个文档的多向链接。locator:指向远程资源。arc:描述两个链接之间的横向路径。,简单链接的例子,thisisaslinkedelement,7.1.3扩展链接,扩展链接具有更复杂的链接功能,它可以:1、链接两个以上的资源;2、创建位于源文档以外的资源之间的链接(out-of-line-linking);3、从被链接资源的定义中分离出链接的方向。,声明扩展链接,声明扩展链接时,会用到四种类型的子元素:、和;和一些属性:xlink:type、xlink:role、xlink:title、xlink:from、xlink:to,7.1.4外联链接,前面所介绍的链接(简单和扩展)都是内联链接。内联链接(如同html中的a元素)使用内联元素的内容作为包含链接的文档部分。通过这种方式展示给访问者。xlink也可以是外联方式。外联链接可能不存在于它所连接的任何文档中,而是将链接保存在各个独立的链接文档中。要将链接标记为外联,可将xlink:inline属性设置成false值。,7.1.5扩展链接组,扩展链接组元素包含连接一组特定文档的链接。依靠扩展链接文档元素,组中的每个文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026Fast芯片组行业用户画像与精准营销实践评估
- 2026中国康复医疗设备行业老龄化需求与产品线规划战略研究报告
- 2026中国无人机航拍服务行业市场现状及商业化发展分析报告
- 2026年初中化学七年级上册单元测试卷
- 2026砷业产业行业市场现状供给需求评估投资规划分析研究报告
- 2026中国工业无人机行业应用场景拓展与适航认证进展报告
- 2026生猪养殖全产业链管理现状供应链优化现状分析报告
- 2026食品加工机械行业市场深度研究及投资前景与投资方向研究报告
- 2026汽车尾气处理行业技术进步与市场需求分析研究
- 2026中国运动护具材料研发突破与高端产品市场培育策略报告
- 手术室护理清点不良事件
- 人保财险车险合同范本
- 第六届“四川工匠杯”职业技能大赛(互联网营销赛项)理论参考试题库(含答案)
- 星级复评规范评分表星级饭店访查规范
- 《 大学生军事理论教程》全套教学课件
- 私人房屋装修安全免责协议书
- 自动控制原理 第3版 课件全套 陶洪峰 第1-8章 概论、控制系统数学模型-线性离散系统分析
- 微生物工程课件
- 新生儿患者抗菌药物的应用课件
- 生物医学传感与检测原理 课件 第7、8章 生物医学中的化学传感与检测、生物标志物的传感检测新技术
- mt654 1997煤矿用带式输送机安全
评论
0/150
提交评论