版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 命名空间与XML Schema1章节结构4.1 命名空间4.2 XML Schema 24.1 命名空间命名空间namespace:零个或多个名称的集合,在命名空间中,每一个名称都是唯一的,并且是按照命名空间的规那么来构建的。3为什么要用命名空间?在XML的实际应用中,人们常常为不同行业和领域用XML制定不同的语言标准,比方电子商务、远程教育、电子书都分别用XML制定了语言标准,然后针对不同的语言编写不同的模块化处理程序假设我们通过重新命名的方法解决名称冲突问题,那么我们将面临着,针对原名称开发的应用程序不可再利用的危险45wang 63880000li63880001G wang 6
2、38800003 wang 638800003 Ali638800012B?为什么要用命名空间?解决名称冲突的一个比较好的解决方案是:给不同的语言赋以不同的名称空间,应用程序通过名称空间来区分一个元素到底来自于哪一个语言,XML命名空间就是对这种方案的具体实现命名空间前缀prefix:用来代替命名空间字符串URI和标记名称简单说来,制定XML命名空间标准的初衷是为了解决XML文档中命名的冲突问题6名称空间命名空间的定义:是一个名称集合,将XML文档和引用的URIuniform resource identifier标识的名域相结合,用不同的URI来标识不同的元素和属性,来限定其中的元素和属性。
3、W3C制定的命名空间,可以到查询名称空间的作用域是定义名称的元素及其子树。74.1.2 什么是URIURIuniform resource identifier通用资源标志符使用命名空间必然要使用URI主要用来界定资源对象的名称,该资源对象一经命名后即具唯一性,且具永续性比方使用公司的 。那么此网址具有唯一性8URI的两种表达形式:URL uniform resource locator :如,最常用URN uniform resource name :由IETFinternet engineering task force组织制定,也指向一种资源对象区别:URL除了显示资源地址外还会将整个通
4、信协议表现出来,如 、ftpURN以资源名称作为标识9URN的使用:根本语法:urn:NIDNamespaces Identifier:代表所要使用的资源组织名称,如ISBN组织、相关的政府组织等NSSNamespaces Specific String:是一个唯一的字符串,代表要使用的资源举例:Urn:booksUrn:ISBN:0-394-3866-6104.1.3 使用命名空间的规那么规那么1:引用命名空间的两种方法NSAttName=PrefixedAttName|DefaultAttName标准了声明命名空间的两种方法:前置命名法默认命名法11规那么2:前置命名法的语法Prefixe
5、dAttName=“xmlns:+NCName标准了声明前置命名法的语法:由xmlns关键字来告诉解释程序该元素要套用的命名空间,在“:之后加上为命名空间所取的别名此规那么可以让不同的元素与属性套用不同的命名空间.以下是为命名空间起的别名dsxmlns:ds=12规那么3:使用默认命名法的语法DefaultAttName=“xmlns标准了声明默认命名法的语法:由xmlns关键字直接加上命名空间命名此规那么可以让引用的元素直接套用该命名空间,子元素也自动引用相同的命名空间,以下是默认的命名空间xmlns=13规那么4:定义命名空间的构成NCName=(Letter|_)(NCNameChar*
6、标准了定义命名空间代名的构成方法:使用字母或下划线开头,后跟任意数量的NCNameChar字符14规那么5:命名空间代名能使用的字符NCNameChar:=Letter|Digit|.|-|_|CombiningChar| Extender使用任意数量的字母、数字、点符、下划线及其他扩展字符15eg. 默认命名法16精彩XML默认命名法eg. 前置命名法17精彩XML前置命名法前置命名法和默认命名法的区别:前置命名法必须为所引用的命名空间另取一个别名,使用时直接使用别名即可;而默认命名法没有别名使用默认命名法,元素一经引用命名空间,那么元素的子元素会自动引用相同的命名空间;但是使用前置命名法,
7、元素的任何子元素及属性仍要加上别名前缀18如果在一份XML文档中引用单一的命名空间,那么使用前置命名空间或默认命名空间都可以;但如果引用多个命名空间时,那么需要两种命名空间的配合使用。19引用多个命名空间画一个方形 有关矩形的相关信息 2004/11/17默认命名法前置命名法默认命名法综上所述,XML命名空间通过将元素和属性名称与URI所标识的命名空间相联系,提供了一种简单的方法来验证在XML文档中使用的元素和属性的名称,以保证其唯一性,而不会引起冲突。元素或属性的定义由一个唯一的名称定义,名称包括两个局部:命名空间的URI和本地名称。引用前置命名法空间中的元素、属性的方法:前缀名:元素名 或
8、 前缀名:属性名声明时假设前缀名省略,那么声明的是缺省的空间,引用缺省名空间中的元素、属性时可不加前缀名204.2 XML Schema4.2.1 XML Schema概念对于XML Schema语言有两种模型:Microsoft开发的Microsoft XML SchemaMicrosoft XML Schema已经开发成熟并运用到实际W3C开发的W3C XML Schema。最为正式的XML Schema语言是由W3C指定的XML Schema标准,简称为XSD(XML Schema Definition)。xsd也提供了数据类型的支持和结构定义的方法。XSDXML schema defi
9、nition,本身也是一个XML文档,用于描述另一个XML文档,如果被描述的XML文档符合schema中的XML描述,那么就可以说它是该schema的一个有效实例2122XML Schema的标准共分为3个局部:第一局部为引导primer,是对Schema的总体介绍,其目的是帮助读者快速理解如何使用Schema语法创立Schema文档第二局部为结构structure,是为描述XML 1.0文档结构和内容约束提供了文档定义第三局部是数据类型datatypes,为Schema及其他XML标准定义了数据类型,让用户定义出更明确的类型4.2.2 DTD与XML SchemaDTD的优点与缺乏DTD有许
10、多优点:相对简单,语法紧凑,而且广泛地为XML实现者理解和支持;如果设计得当,它可以是高度模块化的、灵活的和可扩展的。DTD也有一些缺乏,它采用独有的非XML语法,仅提供非常有限的、仅适用于属性的数据类型。23DTD 与Schema不同之处与DTD的结构不同:Schema本身是一XML文档支持命名空间:XML文档只能引用一份DTD多样化的数据类型: Schema中类型丰富。如布尔型、数字、日期和时间、URI、整型、小数、实数以及时间间隔高度扩充性:只要设置XML Schema中的模式属性为open,可以加上未被定义的新元素24Schema作用Schema 文档用来验证XML 文档的正确性,用来
11、判断实例是否符合模式中所描述的所有约束,涉及到检查实例中所有的元素和属性。Schema 主要检验如下内容:验证数据的显示格式是否正确及是否超出值的范围;验证所有必需的信息都存在;确保不同使用者对文档理解的方式相同。除了对XML 文档的验证外,Schema 文档还在一定程度上扩充实例:为元素和属性添加默认值和固定值;使具有简单类型的元素和属性值中的空白符标准化。XML Schema的优点:1) XML Schema基于XML,没有专门的语法 2) XML Schema可以象其他XML文件一样解析和处理 3) XML Schema支持一系列的数据类型(int、float、Boolean、date等
12、) 4) XML Schema提供可扩充的数据模型。 5) XML Schema支持综合命名空间 6) XML Schema支持属性组。264.2.4 XML Schema与命名空间编写XML Schema时,必须引用一个命名空间一般是微软制作的命名空间schemas-microsoft-com:xml-dataXML Schema应用命名空间可用URL或URN2728This is a sampleXML Schema文件中引用URNXML Schema文件中引用URL Schema 的引用一个模式可能由多个模式文档构成。多个模式文档通过包含或导入机制来形成模式,当其他模式文档与主模式文档具
13、有相同的目标名称空间时,需要使用包含;当模式文档之间各自拥有不同的目标名称空间时,需要使用导入。29【例5.3】 关于多个模式文档通过包含实现定义的例子,代码如源程序code5_3.xsd 所示。要验证XML 文档,必须指定Schema 文档的位置。模式的位置可以利用带有名称空间模式的xsi:schemaLocation 属性以及不带名称空间XML 模式的xsi:noNamespace SchemaLocation属性来指定,它们位于根/顶级元素中或XML 文档的任何其他元素中。30 指明xsd文件中预定义的元素、属性和数据类型的来源 当Schema 文档不包括targetNamespace
14、属性时,应当通过XML 文档根元素的noNamespaceSchemaLocation 属性及W3C的Schema 实例名称空间(xmlns:xsi=“ :/ /2001/XMLScheam-instance)来引用XML Schema 文件。eg1.xml:31noNamespaceSchemaLocation属性来指定XML文档的schema 4.2.3 XML Schema的结构XML Schema的根本架构也是一个树状的XML结构根元素名称一定是元素根元素下面声明其他元素XSD文档至少要包括以下几局部:Schema根元素和XML模式命名空间的定义Element定义32关于书籍信息的XM
15、L 文档,代码如源程序2.xml 所示。三国演义罗贯中80.00 滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。古今多少事,都付笑谈中。经典好书文艺出版社1998.1033Eg. 关于书籍信息模式定义的完整例子,代码如源程序2.xsd 所示。34Eg. 关于书籍信息模式定义的完整例子,代码如源程序2.xsd 所示。35Eg. 引用2.xsd文件来验证的2-1.xml三国演义罗贯中80.00滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。古今多少事,都付笑谈中
16、。经典好书文艺出版社1998-10-0136 37XML Schema的结构图Schema元素说明属性类型说 明SchemaXML Schema文件的根元素Element定义在Schema中的元素ElementType用来定义XML Schema文件内的元素类型(简单元素或复合元素)Group只在ElementType元素内出现,用于将元素群组Attribute仅在Elementtype元素内出现,定义元素的属性attributeType定义属性类型Datatype在ElementType元素或AttributeType元素内使用,用于定义该元素的数据类型Description提供对Schem
17、a、ElementType和AttributeType等元素内的相关说明38schema在schema 文档中必须定义一个且只能定义一个schema 根元素。根元素说明了文档类型根元素还包括模式的约束、XML 模式名称空间的定义,其他名称空间的定义、版本信息、语言信息和其他一些属性。定义如下:39元素的声明语法:其中,name 是元素类型的名称,必须是以字母或下划线开头,而且只能够包含字母、数字、下划线、连接符及句号。type 属性是必要的,说明元素的数据类型。XSD 中的元素是利用element 来声明的。其中name 属性是元素的名字,type 属性是元素值的类型,在这里可以是XML Sc
18、hema 中内置的数据类型或其他类型。40eg:41Element.xsdElement.xml罗贯中Attribute定义属性的方法如下:eg.42Attr.xsd Attr.xml元素类型分为:简单类型简单数据类型的元素不能参加子元素,不可参加任何属性,即简单数据类型的元素适于存放无附加信息的数据和叶子元素简单数据类型有布尔、日期、整数、浮点数与字符串类型等复杂类型复杂数据类型由简单数据类型组合而成,可再包含其他复杂数据类型、简单数据类型及属性说明434.2.5 简单类型元素语法:每个简单类型元素有一个name属性对应要验证的XML元素的名称XML元素的数据类型是通过type属性进行设置元
19、素出现的个数使用minOccurs、 maxOccurs设置下、上限;这两个属性具有可选择性44根本数据类型根本数据类型是在XML模式中使用的每种数据类型的最根本构成块,XML模式以这些数据类型为根底,为创立自定义类型提供数据类型最通用的根本数据类型包括:boolean:可以是1True或者0FalsedateTime:表示日期decimal:表示任意精度的十进制数字string:字符数据45派生类型利用派生类型通常可以提高验证的等级这些类型进一步限制了根本数据类型的值,最通用的派生类型有:int:从long型派生而来,表示大多数整数nonNegativeInteger:表示大于或者等于0的一
20、个整数,从integer派生而来nonpositiveInteger:表示小于或者等于0的一个整数positiveInteger:表示大于0的一个整数Short:表示-3276832768之间的一个整数 参见p75图4-3464.2.6 高级的简单类型元素赋予简单类型元素更多变化辅助元素有元素名称说 明Restriction对输入的数据范围进行设置,如数字19、字母AZ等Union该元素内可包含多种不同类型数据,但同时只能存在一个Enumerate使用枚举类型List用户可输入多个数据,数据间以空白间隔Pattern以正规式语法定义数据的组合类型47元素040206a.XSD 48 04020
21、6a.xml60元素49040206b.xsd 040206b.xmlE50元素 5104.02.06c.xml 会员的兴趣资料Sport Reading Shopping52元素 53AB54元素 55A123456789564.2.7 注释说明元素注释方法:XML中的注释方法专用注释元素annotation语法:放入其他相关的信息57使用元素的例子 a.xsd This is explain information. 584.2.8 复杂类型元素复杂型元素主要是由用户自行定义、组合以创造出适宜的元素根本声明语法:59040208.XSD60一个具有BookType数据类型的Book元素Bo
22、okType数据类型由两个简单类型元素Title和Author构成,这两个元素都是字符串类型参照声明方式语法:61040208a.XSD62参照法可以提高元素的重复使用性,让多个元素同时共享和元素的设置040208d.XSD634.2.9 为复杂类型元素参加属性只有复杂类型元素可以加属性,简单类型元素不允许加属性本身须为简单类型为复杂类型元素参加属性的语法: 声明属性元素时,一定要设置属性名称和属性类型Required属性决定该属性是否一定要填入数据,有yes和no两种64040209.xsd65 66Element Declaration for an element with subele
23、ments and attribute.67 John 42 Susan 27 27 Susan John 42?小结68本讲介绍了XML中的名称空间:为了使应用程序能区分Internet上的XML中同名的不同标记,XML使用了名称空间。名称空间由前缀和URI两局部组成,其中真正使同名标记相互区分的URI。名称空间的作用域是定义名称的元素及其子树。没有前缀的名称空间称为缺省名称空间。Schema 是描述XML 文档的文档,用来定义XML 文档的格式。最常用的用法之一就是依照预定义好的规那么来验证XML 文档的有效性。Schema 可以确认:(1) 元素和属性的结构;(2) 元素出现的顺序;(3
24、) 对元素和属性的数据值的取值范围进行限定;(4) 保证实例中值的唯一性。69与DTD 相比较而言,XML Schema 采用XML 的语法,并且支持名称空间,提供丰富的数据类型定义手段,具有很强的描述能力、扩展能力和处理维护能力。元素和属性是XML 文档的根本构件。Schema 主要包括元素和属性的声明及定义,模式文档由元素、属性、名称空间和XML 文档中的其他结点构成,并且至少要包含:schema根元素、XML 模式名称空间的定义和元素定义。元素是利用element 标记来声明的,其中name 属性是元素的名字,type 属性是元素值的类型。属性实现的方法是使用attribute 元素。7
25、0作业P84 第1题根据书籍XML 文档,建立Schema 文档和DTD文档。三国演义罗贯中80.00 滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。古今多少事,都付笑谈中。71学号姓名补充72String Data Types (1 of 2)73NameDescriptionIDA string that represents the ID attribute in XML (only used with schema attributes)IDREF A string that represents the IDREF
26、 attribute in XML (only used with schema attributes)language A string that contains a valid language idNameA string that contains a valid XML nameNMTOKENA string that represents the NMTOKEN attribute in XML (only used with schema attributes)String Data Types (2 of 2)74NameDescriptionnormalizedString
27、A string that does not contain line feeds, carriage returns, or tabsstringA stringtokenA string that does not contain line feeds, carriage returns, tabs, leading or trailing spaces, or multiple spacesanyURI A string that specifies a URI Note: If a URI has spaces, replace them with %20.String Example
28、sString Can contain characters, line feeds, carriage returns, and tab characters. NormalizedString Can contains characters, but the XML processor will remove line feeds, carriage returns, and tab characters. Token Can contains characters, but the XML processor will remove line feeds, carriage return
29、s, tabs, leading and trailing spaces, and multiple spaces. 75Date and Time Data Types76NameDescriptiondateDefines a date value (CCYY-MM-DD)dateTimeDefines a date and time value(CCYY-MM-DDThh:mm:ss)durationDefines a time interval (PnYnMnDTnHnMnS)gDayDefines a part of a date - the day (DD)gMonthDefine
30、s a part of a date - the month (MM)gMonthDayDefines a part of a date - the month and day (MM-DD)gYearDefines a part of a date - the year (CCYY)gYearMonthDefines a part of a date - the year and month (CCYY-MM)timeDefines a time value (hh:mm:ss)Date and Time Examples (1 of 5)Date The date is specified
31、 in the form CCYY-MM-DD:CC indicates the century YY indicates the year MM indicates the month DD indicates the day 2002-09-24TimeThe time is specified in the form hh:mm:ss:hh indicates the hour mm indicates the minute ss indicates the second 09:30:10.577Date and Time Examples (2 of 5)DateTimeThe dat
32、eTime is specified in the form CCYY-MM-DDThh:mm:ss:CC indicates the century YY indicates the year MM indicates the month DD indicates the day T indicates the start of the required time section hh indicates the hour mm indicates the minute ss indicates the second 2002-05-30T09:00:0078Date and Time Ex
33、amples (3 of 5)Time ZonesTo specify a time zone, you can either add a Z behind the UTC time, or you can specify an offset from the UTC time by adding a positive or negative time behind the time:2002-05-30T09:30:10Z2002-05-30T09:30:10-06:002002-05-30T09:30:10+06:0079Date and Time Examples (4 of 5)Dur
34、ationThe time interval is specified in the form PnYnMnDTnHnMnS:P indicates the period (required) nY indicates the number of years nM indicates the number of months nD indicates the number of days T indicates the start of a time section nH indicates the number of hours nM indicates the number of minu
35、tes nS indicates the number of seconds 80Date and Time Examples (5 of 5)P5YP5Y2M10DP5Y2M10DT15HPT15H-P10D81Numeric Data Types (1 of 2)NameDescriptionbyteA signed 8-bit integerdecimalA decimal valueintA signed 32-bit integerintegerAn integer valuelongA signed 64-bit integernegativeIntegerAn integer c
36、ontaining only negative valuesnonNegativeIntegerAn integer containing only non-negative valuesnonPositiveIntegerAn integer containing only non-positive values82Numeric Data Types (2 of 2)NameDescriptionpositiveIntegerAn integer containing only positive valuesshortA signed 16-bit integerunsignedLongA
37、n unsigned 64-bit integerunsignedIntAn unsigned 32-bit integerunsignedShortAn unsigned 16-bit integerunsignedByteAn unsigned 8-bit integerboolean specify a true or false value base64BinaryBase64-encoded binary data hexBinaryhexadecimal-encoded binary data 83Numeric ExamplesDecimalNote: The maximum number of decimal digits you can specify is 18.999.50-999.523
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户关系管理教学课件430
- 山东省2026-2027学年高二上学期开学考试物理试卷
- 2026太古工程面试题及答案
- 2026事业单位工勤技能-广西-广西园林绿化工三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-广东-广东水利机械运行维护工四级(中级工)历年参考题库含答案详解3套试卷
- 《方寸天地》教案-2026-2027学年浙美版(新教材)小学美术四年级上册
- 2026事业单位工勤技能-山西-山西印刷工三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-山东-山东家禽饲养员一级(高级技师)历年参考题库含答案详解3套试卷
- 航天竞赛真题含解析及答案
- 2026事业单位工勤技能-云南-云南房管员四级(中级工)历年参考题库含答案详解3套试卷
- 2026秋季学期新教材译林版(三起)六年级上册英语Unit 1 Try your best 教案(3课时)
- 绵阳英才中学2025初一入学语文分班考试真题含答案
- 新二升三暑假英语26个字母每日一练过关练22天
- 2026年高校行政管理岗招聘笔试典型试题及要点含答案
- 光伏施工方案范文模板
- 2026年时事政治考试题库及答案(100题)
- 2026年危险化学品生产单位安全生产管理人员安全生产模拟考试题库及答案
- 高标准农田建设技术工作手册
- 魏家凉皮考勤制度
- 无刷电机培训
- 临床医学大三《急性脑梗塞合并一氧化碳中毒》教学设计
评论
0/150
提交评论