黑马程序员javaweb教程:schema

上传人:第*** 文档编号:30582346 上传时间:2018-01-30 格式:DOC 页数:13 大小:121.50KB
返回 下载 相关 举报
黑马程序员javaweb教程:schema_第1页
第1页 / 共13页
黑马程序员javaweb教程:schema_第2页
第2页 / 共13页
黑马程序员javaweb教程:schema_第3页
第3页 / 共13页
黑马程序员javaweb教程:schema_第4页
第4页 / 共13页
黑马程序员javaweb教程:schema_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《黑马程序员javaweb教程:schema》由会员分享,可在线阅读,更多相关《黑马程序员javaweb教程:schema(13页珍藏版)》请在金锄头文库上搜索。

1、Comment 崔1: schema文档的根元素,其中 xmlns这个东东是与名称空间相关的东东,先不用理会它,只需要照着写就行了Comment 崔2: 新建一个元素,名字为 students,这个元素的类型为studentsType,这个类型在下面创建的。Comment 崔3: 新建一个复杂类型,名为 studentsType类型,这个类型为复杂类型Comment 崔4: 这个类型里面包含的子元素是需要有顺序的Comment 崔5: studentsType只有一个子元素,名为 student,类型为studentType,在父元素中可以出现0N次。Comment 崔6: 新建一个复杂类型,

2、类型名为 studentTypeSchemaSchema概述我们学习 Schema的第一目标是:参照 Schema的要求可以编写 XML文档;第二目标是:可以自己来定义 Schema文档。1Schema 是什么XML文档的约束,用来替代 DTD。DTD文档不是 XML语法,而 Schema本身也是 XML文档,这对解析器来说不用再去处理非 XML的文档了;DTD只能表述平台线束,而 Schema本身也是 XML,所以可以描述结构化的约束信息。DTD不只约束元素或属性的类型,但 Schema可以。例如让 age属性的取值在 0100之间。Schema文档的扩展名为 xsd,即 XML Schem

3、a Definition。1 为 students.xml编写 DTD3为 students.xml编写 schemaComment 崔7: studentType中的子元素是要求顺序的Comment 崔8: studentType类型中第一个子元素名为 name,类型为字符串Comment 崔9: age的类型是简单类型Comment 崔10: 这个类型是通过对整型的约束而扩展的,约束内容为最小值为 0;最大值为 100Comment 崔11: sex元素Comment 崔12: 简单类型Comment 崔13: 通过对字符串类型约束扩展而来的类型,约束内容为枚举列表:男、女Comment

4、崔14: 为 student类型声明属性 number,类型为字符串Comment 崔15: 这是名称空间,先不用理会它,后面会讲解。Comment 崔16: 这个属性的值就是关联的 Schema文档的路径,其中students.xsd就是 XSD文件的路径4参照 Schema编写 XML文档我们参照上面的 Schema文档编写一个 studens.xml文件张三23男李四32女王五50男 Schema 基本语法1Schema 内置类型前面已经看见了,Schema 中有很多内置的类型,例如:xsd:string、xsd:integer 等,下面我们把 Schema 的常用内置类型介绍一下。这里

5、要说明一下,Schema 中的“名称空间”相关内容最后我们再来讲解,所以现在可能会有很多与名称空间相关的知识点需要背一下,而不需要了解它是含义!例如,Schema中的内置类型前面都有一个前缀 xsd,这个前面来自于 Schema 文档中xmlns:xsd=http:/www.w3.org/2001/XMLSchema的 xsd,这个名字可以随意来命名,例如:xmlns:xs=http:/www.w3.org/2001/XMLSchema,这时所有的内置类型前缀就是 xs,而不是 xsd 了。例如:xs:string 、 xs:integer。内置类型 说明xs:string 字符串类型xs:i

6、nteger 整数类型xs:decimal 小数类型xs:boolean 布尔类型:true 和 false,或者 1 和 0xsdate 日期类型,格式为:YYYY-MM-DD,例如 2000-08-08xs:time 时间类型,格式为:hh:mm:ss ,例如:20:08:08xs:dateTime 日期时间类型,格式为:YYYY-MM-DDThh:mm:ss,例如:2000-08-08T20:08:08xs:gYearMonth年月日期类型,格式为:YYYY-MM,例如:2000-082Scheam 元素类型简介Schema 元素类型分为: 简单类型元素:只包含文本内容,不包含属性和子元

7、素的就是简单类型元素 直接使用内置类型; 通过约束内置类型生成新的简单类型; 复杂类型元素: 简单内容的复杂类型元素:只包含文本内容,但包含属性的元素。通过约束简单类型生成简单内容的复杂类型; 复杂内容的复杂类型元素:非简单内容的复杂类型,都是复杂内容的复杂类型元素。通过约束 anyType 来生成;Comment 崔17: 声明一个元素,名为sexComment 崔18: sex元素为简单类型Comment 崔19: 通过约束 xsd:string类型创建新的简单类型Comment 崔20: 添加枚举选项Comment 崔21: 指定 schema文档Comment 崔22: 约束字符串最少

8、字符个数为 3Comment 崔23: 约束字符串最大字符个数为 20简单类型元素1简单类型元素概述如果 Schema内置的类型可以满足你的要求,那么就直接使用就 OK了,但如果内置类型不能满足你的要求,那么你可以通过对内置类型进行约束,而生成满足你要求的简单类型。例如,当你想声明一个 age元素时,如果声明为 xs:integer类型,范围就过于太大,那么你可以约束 xs:integer生成取值范围为 0100的类型;再或者,你想声明 sex类型的元素,但如果使用 xs:string那么范围就太大了,你可以通过约束 xs:string类型生成有可选值的枚举列表的类型。2枚举型(enumera

9、tion)当我们想让某个元素内容的取值是有限的个数时,可以使用枚举型。枚举型需要通过对 xs:string类型进行约束而生成。female 2限制长度(minLength、maxLength)Comment 崔24: 通过对 xsd:integer类型约束来创建新的简单类型Comment 崔25: 指定最小值为 0Comment 崔26: 指定最大值为 100Comment 崔27: 通过对 xsd:decimal类型进行约束来创建新的类型Comment 崔28: 指定小数最大位数为7(整数和小数部分一共位数)Comment 崔29: 指定小数部分的最大位数为 2Comment 崔30: xs

10、d:string进行约束Comment 崔31: 通过正则表达式进行约束3取值范围(minInclusive、maxInclusive)4小数位置限定(totoalDigits、fractionDigits)5模式匹配(pattern)Comment 崔32: 复杂类型Comment 崔33: 复杂类型中的简单内容Comment 崔34: 扩展简单类型xsd:string类型,说明元素的文本内容为字符串。Comment 崔35: 声明属性,属性名为number,类型为 xsd:integerComment 崔36: 声明一个元素,名为student,类型为studentType。student

11、Type类型在下面声明Comment 崔37: 声明一个复杂类型的,这个类名的名字为 studentType。这个类型为命名类型复杂类型之简单内容1复杂类型的简单内容概述复杂类型的简单内容就是没有子元素,只有文本内容,但有属性的元素类型。例如:zhangSan。声明“复简”类型,一般都是通过扩展简单类型而来,扩展的内容就是添加属性。2复简的例子(匿名类型)3复简的例子(命名类型)Comment 崔38: 声明 student元素,元素类型为 studentTypeComment 崔39: studentType元素,该元素为复杂类型Comment 崔40: 复杂类型,简单内容Comment 崔

12、41: 元素内容为字符串类型Comment 崔42: 声明属性 number,该属性是必需的,该属性为整数类型Comment 崔43: 声明 sex属性,该属性是可选的,类型为 sexTypeComment 崔44: 声明 age属性,该属性是可选的,类型为 ageTypeComment 崔45: 声明 test属性,这个属性是不可使用的,这种属性没有什么意义,只是对使用 schema的人员起到提示作用Comment 崔46: 声明简单类型sexTypeComment 崔47: 声明简单类型ageType4使用 use定义属性不只有 name和 type属性,还有 use属性,这个 use属性

13、的可选值为required、optional 、prohibited 三种。 required:表示当前声明的属性是必需的; optional:表示当前声明的属性是可选的,在没有给出 use时,默认为 optional; prohibited:表示当前声明的属性是不可以存在的;5使用 default声明属性default 用来指定属性的默认值,只有属性的 use=”optional”时,default 的值才有意义。Comment 崔48: 当用户没有给出 sex属性时,该属性的值为 maleComment 崔49: 声明一个复杂类型:studentTypeComment 崔50: stude

14、ntType类型是复杂内容的Comment 崔51: 通过约束 anyType派生新的类型Comment 崔52: 表示这一部分子元素内容在父元素中出现的顺序必须按声明顺序出现复杂类型之复杂内容1复复类型概述复杂内容的复杂类型都是通过对 anyType类型约束派生而得到的。anyType类型表示对元素的内容没有任何限制,例如元素可以有属性,或无属性;可以有文本内容或无文本内容;可以有子元素或无子元素,一切的一切都是没有任何限制的。当我们声明一个复复类型的元素时,通常都是在 anyType上进行约束,得到我们想要的类型。一般自定义类型都会在文本内容和子元素两者之间选择其一。2复复类型的例子 1下

15、面自定义一个 Schema文档,根元素为 student,它有三个子元素:name、age、sex,这三个子元素在父元素(student )中出现的顺序是固定的。Comment 崔53: 对子元素name、age、sex 的顺序没有要求,但三个元素必须且仅能出现一次。3第一例的简写形式Schema文档可以简写复杂内容约束 anType的形式,注意,只是在复杂内容时,并且是通过约束 anyType时可以简写!4子元素顺序 sequence:子元素必须按照元素声明的顺序出现; all:子元素的顺序可以是任意的,但一个子元素最多且仅能出现一次。 choice:只能选择其中一个子元素;allchoiceComment 崔54: 子元素name、age、sex 三个中只能选择其一。Comment 崔55: number和 name两者选择其一,也就是说,正确的结果可以是:name 、age、sex ,或者是number、age、sex 。sequence和 choice嵌套使用5元素出现的次数可以使用 maxOccurs指定子元素最多出现的次,minOccurs 指定子元素最少出现的次数。minOccurs 的最小值可以是 0,即表示元素最少出现的次数为 0。maxOccurs 的最大值可以是 unbounded,表示最大没有上限的意思。默认情况下,minOccurs 和 maxOccu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号