资源预览内容
第1页 / 共100页
第2页 / 共100页
第3页 / 共100页
第4页 / 共100页
第5页 / 共100页
第6页 / 共100页
第7页 / 共100页
第8页 / 共100页
第9页 / 共100页
第10页 / 共100页
亲,该文档总共100页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
L/O/G/O第4章 命名空间与XML Schema1章节结构4.1 命名空间 4.2 XML Schema 24.1 命名空间 命名空间(namespace): 零个或多个名称的集合,在命名空间中,每一个名 称都是唯一的,并且是按照命名空间的规则来构建 的。3 为什么要用命名空间? 在XML的实际应用中,人们常常为不同行业和领域 用XML制定不同的语言标准,比如电子商务、远程 教育、电子书都分别用XML制定了语言标准,然后 针对不同的语言编写不同的模块化处理程序 假如我们通过重新命名的方法解决名称冲突问题, 那么我们将面临着,针对原名称开发的应用程序不 可再利用的危险45wang 63880000li 63880001 G wang 63880000 3 wang 63880000 3 Ali 63880001 2 B? 为什么要用命名空间? 解决名称冲突的一个比较好的解决方案是:给不同 的语言赋以不同的名称空间,应用程序通过名称空 间来区分一个元素到底来自于哪一个语言,XML命 名空间就是对这种方案的具体实现() 命名空间前缀(prefix):用来代替命名空间字符串 URI和标记名称 简单说来,制定XML命名空间标准的初衷是为了解 决XML文档中命名的冲突问题6名称空间 命名空间的定义: 是一个名称集合,将XML文档和引用的URI( uniform resource identifier)标识的名域相结合 ,用不同的URI来标识不同的元素和属性,来限定 其中的元素和属性。 W3C制定的命名空间,可以到 http:/www.w3.org/TR/REC-xml-names查询 名称空间的作用域是定义名称的元素及其子树。74.1.2 什么是URI URI(uniform resource identifier) 通用资源标志符 使用命名空间必然要使用URI 主要用来界定资源对象的名称,该资源对象一经 命名后即具唯一性,且具永续性 比如使用公司的网址:www.w3.org。则此网址 具有唯一性8 URI的两种表达形式: URL (uniform resource locator) :如 http:/www.w3.org,最常用 URN (uniform resource name) :由IETF( internet engineering task force)组织制定,也 指向一种资源对象 区别: URL除了显示资源地址外还会将整个通信协议表现 出来,如http、ftp URN以资源名称作为标识9 URN的使用: 基本语法:urn: NID(Namespaces Identifier):代表所要使用 的资源组织名称,如ISBN组织、相关的政府组织 等 NSS(Namespaces Specific String):是一个 唯一的字符串,代表要使用的资源 举例: Urn:loc.gov:books Urn:ISBN:0-394-3866-6104.1.3 使用命名空间的规则 规则1:引用命名空间的两种方法 NSAttName=PrefixedAttName| DefaultAttName 规范了声明命名空间的两种方法: 前置命名法 默认命名法11 规则2:前置命名法的语法 PrefixedAttName=“xmlns:”+NCName 规范了声明前置命名法的语法: 由xmlns关键字来告诉解释程序该元素要套用的命 名空间,在“:”之后加上为命名空间所取的别名 此规则可以让不同的元素与属性套用不同的命名空 间. 以下是为命名空间起的别名ds xmlns:ds=http:/www.w3.org/tr/rec-htm14012 规则3:使用默认命名法的语法 DefaultAttName=“xmlns” 规范了声明默认命名法的语法: 由xmlns关键字直接加上命名空间命名 此规则可以让引用的元素直接套用该命名空间,子 元素也自动引用相同的命名空间,以下是默认的命 名空间 xmlns=http:/www.w3.org/tr/rec-htm14013 规则4:定义命名空间的构成 NCName=(Letter|_)(NCNameChar)* 规范了定义命名空间代名的构成方法: 使用字母或下划线开头,后跟任意数量的 NCNameChar字符14 规则5:命名空间代名能使用的字符 NCNameChar:=Letter|Digit|.|- |_|CombiningChar|Extender 使用任意数量的字母、数字、点符、下划线及其 他扩展字符15 eg. 默认命名法16精彩XML默认命名法 eg. 前置命名法17精彩XML前置命名法前置命名法和默认命名法的区别: 1. 前置命名法必须为所引用的命名空间另取一 个别名,使用时直接使用别名即可;而默认命 名法没有别名 2. 使用默认命名法,元素一经引用命名空间,则 元素的子元素会自动引用相同的命名空间;但 是使用前置命名法,元素的任何子元素及属性 仍要加上别名前缀18 如果在一份XML文档中引用单一的命名空间,则使用前置 命名空间或默认命名空间都可以;但如果引用多个命名空 间时,则需要两种命名空间的配合使用。191. 2. 3. 4.引用多个命名空间 5. 6. 7.画一个方形 8. 9. 10. 11. 12. 有关矩形的相关信息 13. 14. 15.2004/11/17 16. 17.默认命名法前置命名法默认命名法 综上所述,XML命名空间通过将元素和属性名称 与URI所标识的命名空间相联系,提供了一种简 单的方法来验证在XML文档中使用的元素和属性 的名称,以保证其唯一性,而不会引起冲突。元 素或属性的定义由一个唯一的名称定义,名称包 括两个部分:命名空间的URI和本地名称。1. 引用前置命名法空间中的元素、属性的方法: 前缀名:元素名 或 前缀名:属性名 2. 声明时若前缀名省略,则声明的是缺省的空间 ,引用缺省名空间中的元素、属性时可不加前缀 名204.2 XML Schema4.2.1 XML Schema概念 对于XML Schema语言有两种模型: Microsoft开发的Microsoft XML Schema Microsoft XML Schema已经开发成熟并运用到实际 W3C开发的W3C XML Schema。 最为正式的XML Schema语言是由W3C指定的XML Schema规范,简称为XSD(XML Schema Definition)。xsd也提供了数据类型的支持和结构定 义的方法。 XSD(XML schema definition),本身也是一个XML 文档,用于描述另一个XML文档,如果被描述的 XML文档符合schema中的XML描述,那么就可以说 它是该schema的一个有效实例2122nXML Schema的标准共分为3个部分:n第一部分为引导(primer),是对Schema的总体介绍 ,其目的是帮助读者快速理解如何使用Schema语法创 建Schema文档n第二部分为结构(structure),是为描述XML 1.0文档 结构和内容约束提供了文档定义n第三部分是数据类型(datatypes),为Schema及其他 XML规范定义了数据类型,让用户定义出更明确的类 型4.2.2 DTD与XML Schema DTD的优点与不足 DTD有许多优点:相对简单,语法紧凑,而且广泛地为 XML实现者理解和支持;如果设计得当,它可以是高度模 块化的、灵活的和可扩展的。 DTD也有一些不足,它采用独有的非XML语法,仅提 供非常有限的、仅适用于属性的数据类型。23 DTD 与Schema不同之处 与DTD的结构不同:Schema本身是一XML文档 支持命名空间:XML文档只能引用一份DTD 多样化的数据类型: Schema中类型丰富。如布尔型、 数字、日期和时间、URI、整型、小数、实数以及时间间隔 高度扩充性:只要设置XML Schema中的模式属性为 open,可以加上未被定义的新元素24Schema作用Schema 文档用来验证XML 文档的正确性,用 来判断实例是否符合模式中所描述的所有约束, 涉及到检查实例中所有的元素和属性。 Schema 主要检验如下内容: 1. 验证数据的显示格式是否正确及是否超出值的范围; 2. 验证所有必需的信息都存在; 3. 确保不同使用者对文档理解的方式相同。 4. 除了对XML 文档的验证外,Schema 文档还在一定程 度上扩充实例: 为元素和属性添加默认值和固定值; 使具有简单类型的元素和属性值中的空白符规范化。 XML Schema的优点: 1) XML Schema基于XML,没有专门的语法 2) XML Schema可以象其他XML文件一样解析和处理 3) XML Schema支持一系列的数据类型(int、float、 Boolean、date等) 4) XML Schema提供可扩充的数据模型。 5) XML Schema支持综合命名空间 6) XML Schema支持属性组。264.2.4 XML Schema与命名空间 编写XML Schema时,必须引用一个命名空间 一般是http:/www.w3c.org/2001/XMLSchema 微软制作的命名空间schemas-microsoft-com:xml- data XML Schema应用命名空间可用URL或URN2728This is a sampleXML Schema文件中引用URNXML Schema文件中引用URL Schema 的引用 一个模式可能由多个模式文档构成。 多个模式文档通过包含或导入机制来形成模式, 当其他模式文档与主模式文档具有相同的目标名称 空间时,需要使用包含; 当模式文档之间各自拥有不同的目标名称空间时, 需要使用导入。29【例5.3】 关于多个模式文档通过包含实现定义的例子,代码如源程 序code5_3.xsd 所示。要验证XML 文档,必须指定Schema 文档的位置。 模式的位置可以利用 带有名称空间模式的xsi:schemaLocation 属性 以及不带名称空间XML 模式的xsi:noNamespace SchemaLocation属 性来指定, 它们位于根/顶级元素中或XML 文档的任何其他元素中。301. 2. 5. 6. 8. 9. 指明xsd文件中 预定义的元素、属性和数据类型的来源 当Schema 文档不包括targetNamespace 属性时,应当 通过XML 文档根元素的noNamespaceSchemaLocation 属性及W3C的Schema 实例名称空间 (xmlns:xsi=“http:/www.w3.org /2001/XMLScheam- instance”)来引用XML Schema 文件。 eg1.xml:311. 2. 5. 6.noNamespaceSchemaLocation属性 来指定XML文档的schema 4.2.3 XML Schema的结构XML Schema的基本架构也是一个树状的XML 结构 根元素名称一定是元素 根元素下面声明其他元素 XSD文档至少要包括以下几部分: 1. Schema根元素和XML模式命名空间的定义 2. Element定义32关于书籍信息的XML 文档,代码如源程序2.xml 所示。1. 2. 3.三国演义 4.罗贯中 5.80.00 6.滚滚长江东逝水,浪花淘尽英雄。是非成败转头
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号