1、2020 6 15 1 XML实用教程 第7章 配合例子源代码一起使用 Powerpoint制作 耿祥义张跃平 XMLSchema模式简介 2020 6 15 2 本章主要内容什么是XMLSchema初识XMLSchemaXMLSchema模式的验证简单类型元素复杂类型元素属性使用正则表达式难点XMLSchema模式的验证 第7章导读 2020 6 15 3 概述 对XML的数据结构进行限制有两种方式 使用文档类型定义DTD DocumentTypeDefinition 和XMLSchema模式 XMLSchema模式是一个特殊的XML文件XMLSchema模式较DTD的一个最大的优势就是它能
2、约束标记中包含的内容的数据类型 2020 6 15 4 7 1什么是XMLSchema 模式的目的是为了约束XML文件 我们已经知道 XML标记包含的内容可以有文本数据和标记组成 模式就是为了限制标记应当包含怎样的文本内容和子标记 W3CXMLSchema开发了一种新的模式 简称XMLSchema模式 该模式不仅能实现DTD的大部分功能 而且能指定标记内容的 数据类型 但XMLSchema模式也不是万能的 XMLSchema模式的出现并不意味着抛弃DTD DTD可以实现XMLSchema模式不能实现的功能 而且较XMLSchema模式而言 具有更广泛的解析器支持 2020 6 15 5 7 2
3、 1XMLSchema模式的保存 7 2初识XMLSchema XMLSchema模式是扩展名为 xsd 的一个文本文件 使用XML语法来编写 保存时所选择的编码必须和所约束的XML文件一致 2020 6 15 6 7 2 2XMLSchema模式的特点 XMLSchema模式可以约束标记包含的文本的数据类型 这里所说的数据类型是指文本的表示形式 比如 一个标记包含的文本被约束为int型 那么该标记包含的文本必须是由数字型字符组成 2020 6 15 7 7 2 3根标记 XMLSchema模式的根标记必须是schema 使用的名称空间必须是 http www w3 org 2001 XMLS
4、chema名称空间的前缀是xsd 例如 2020 6 15 8 7 2 4元素标记 XMLSchema模式用 element 标记来约束XML文件中的标记 element 标记是XMLSchema模式中根标记中最重要的子孙标记 为了和XML文件中的标记在称呼上有所区别 将XMLSchema模式中的 element 标记称为elment元素 简称元素 对于XML文件的中没有子标记的标记 XMLSchema模式使用 简单类型 元素来给予约束 XMLSchema中 简单类型 元素的格式为 对于XML文件中有子标记的标记 XMLSchema模式文件使用 复杂类型 元素来约束 XMLSchema中 复杂
5、类型 元素的格式为 例题7 1p141 2020 6 15 9 7 2 5属性标记 对于XML文件中的属性 XMLSchema模式使用 attribue 标记来约束 2020 6 15 10 7 3XMLSchema模式的验证 步骤 1 得到一个SchemaFactory对象SchemaFactoryschemaFactory SchemaFactory newInstance http www w3 org 2001 XMLSchema 2 创建Schema对象Schemaschema schemaFactory newSchema newFile pattern xsd 3 得到验证器Va
6、lidatorvalidator schema newValidator 4 验证validator validate newStreamSource newFile cha8 1 xml 2020 6 15 11 7 4简单类型元素 对于XML文件的中没有子标记的标记 即只有文本数据的标记 XMLSchema模式可以使用内建的 简单类型 元素来约束 例题7 2p144 2020 6 15 12 7 5复杂类型元素 对于XML文件中有子标记的标记 XMLSchema模式使用 复杂类型 元素来给予约束 XMLSchema中 复杂类型 元素的格式为 对子标记约束的元素例题7 3p146 2020
7、6 15 13 7 6属性 对于XML文件中的属性 XMLSchema模式使用 attribue 标记来约束 该标记的格式如下 其中use可取值 required optional fixed default attribue 标记必须在 复杂类型 元素中使用 指出 复杂类型 元素约束的XML标记应当有怎样的属性 例题7 4p147 2020 6 15 14 7 7 1正则表达式 7 7使用正则表达式 一个正则表达式是含有一些具有特殊意义字符的字符串 这些特殊字符称为正则表达式中的元字符 比如 dok 中的 d就是有特殊意义的元字符 代表0 9中的任何一个 字符串 9ok 和 1ok 都是与 dok 匹配的字符串 在正则表达式 模式 中可以使用一对方括号括起若干个字符 代表方括号中的任何一个字符 在正则表达式中还有一些代表单个字符的元字符 见表7 2 在正则表达式中经常使用限定符 比如 用X代表正则表达式中的一个元字符或普通字符 X 就表示X出现0次或1次 表7 3是正则表达式使用的限定符 2020 6 15 15 7 7 2使用正则表达式 元素中使用正则表达式可以约束XML标记包含的文本必须匹配于正则表达式 元素的格式如下 例题7 5p150