电子服务系统设计复习总结03
前言
本文档原意为考试复习所用,基于 《web服务:原理与技术》 课本。
第三章
★1.什么是XML(可扩展标记语言)
1.1XML定义
①是一种标记语言,很类似HTML;
②XML的设计宗旨是传输数据,而非显示数据;
③XML标签没有被预定义,需要自行定义标签,具有自描述性;
★1.2XML与HTML的主要差异
①XML不是 HTML的替代。
②XML和HTML为不同的目的而设计。
③XML被设计为传输和存储数据,其焦点是数据的内容。
④HTML被设计用来显示数据,其焦点是数据的外观。
⑤XML比HTML的语法规则更严格。
★1.3XML的特点
①XML是不作为的,XML不会做任何事情,XML 被设计用来结构化、存储以及传输数据。
②XML仅仅是纯文本。
③通过XML可以发明自己的标签,具有自描述性。
④XML是独立于软件和硬件的信息传输工具。
1.4XML的作用
①XML把数据从HTML分离出来
②XML简化数据共享
③XML简化数据传输
④XML简化平台的变更
⑤XML使数据更有用
⑥XML用于创建新的 Internet 语言
2.XML文档结构
XML是一种可扩展标记语言,用于网络上电子标记文本的描述和发送。
2.1XML文档组成(根元素、子元素、属性、注释、内容)
XML文档 = 命名容器+命名容器所包含的数据值
命名容器
声明,确定XML的版本
元素,表示一个文本单元,可视为一个结构化组件
属性,元素的特征
2.2XML树结构
XML 文档必须包含根元素。该元素是所有其他元素的父元素
2.3XML声明
<?xml version="1.0" encoding="UTF-8" ?>
2.4XML语法规则
①所有XML元素都须有关闭标签。
②XML 标签对大小写敏感
③XML 必须正确地嵌套
④XML 文档必须有根元素
⑤XML 的属性值须加引号
⑥实体引用(预定义实体)
★⑦两种类型的实体:预定义实体、自定义实体。
★2.5XML元素
①根元素,XML文档最顶端的一个元素
②元素的内容可以是字符数据、其他的嵌套元素,或者是这两者的组合
③包含在其他元素中的元素称为嵌套元素
④包含在文档中的数据值称为文档的内容
⑤不同类型的元素具有不同的名字,对于特定类型元素, XML并不提供表示这些类型元素的具体含义的方法, 而是表示这些元素类型之间的关系
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
2.6XML属性
①在起始标签中添加属性。
②使用属性可以向元素中添加信息,从而更好地表示元素的内容。
③属性不可以嵌套,必须在元素的起始标签中进行声明。
2.7XML 元素 vs 属性
①尽量避免使用属性。
②属性无法包含多重的值(元素可以)。
③属性无法描述树结构(元素可以)。
④属性不易扩展。
⑤属性难以阅读和维护。
3.URI和XML命名空间
3.1统一资源标识符(URI)
①统一资源标识符是一串可以唯一标识因特网资源的字符。
3.2URI与URL
①URI比URL更新、含义更广。
②URI既包括使用传统寻址模式(如HTTP和FTP) 的URL,也包括统一资源命名URN。
★3.3XML命名空间
问题:在不同的上下文中可能会使用相同的标签名→命名冲突。
解决:XML命名空间使得不同的元素可以具有相同的本地名,从而避免了名字的冲突。
①命名空间中的标签名必须是唯一的。
②所有的命名空间声明都有作用域。
③命名空间中的名字与元素的本地名一起构成了全局唯一名,该名字也称为限定名。
xmlns:namespace-prefix = "namespaceURI“
用于标示命名空间的地址不会被解析器用于查找信息。 其惟一的作用是赋予命名空间一个惟一的名称。
4.定义XML文档中的结构
4.1Schema
XML中,模式通常指的是一种特定的文档,该文档用于定义某一类别的XML文档的内容和结构
目的:定义XML文档的类别。
★4.1XML模式定义语言(XML Schema Definition Language,XSD)
①XSD提供了一种粒度化的方式,可用于描述XML文档的内容。
②XSD可用来声明元素和属性,复用其他模式的元素, 定义复合元素,定义约束。
XML Schema的作用是定义XML文档的合法构建模块。
4.2XML Schema优势
①XML Schema支持数据类型,定义数据模型(或称数据格式)。
②XML Schema使用XML语法,不必学习新的语言。
③XML Schema可保护数据通信。
④XML Schema可扩展,通过可扩展的Schema 定义,可以在其他Schema中重复使用Schema。
4.3XML模式组件
XML模式由模式组件构成,模式组件是一些构建模块,可用于构建模式的抽象数据类型。
★4.4XML模式文档
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2003/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
★4.5XSD类型定义、元素和属性声明
①通过定义可以创建新的类型。
②通过声明,具有特定名字和类型(简单类型或复合类型)的元素和属性可以出现在文档实例中。
★4.6XSD元素声明
①元素是模式的主要组成部分,使用XSD中的<xs:element>
声明。
②元素所定义的位置确定了元素在模式中的可用性。
若元素声明是元素<xs:schema>
的直接后代,则称为全局元素声明。
③<schema>
元素是每一个 XML Schema 的根元素,可包含属性。
④XSD 简易元素,仅包含文本的元素,不会包含任何其他的元素或属性。
<xs:element name="xxx" type="yyy"/>
内建的数据类型:
xs:string
`xs:decima`
`xs:integer`
` xs:boolean`
xs:date
xs:time
简易元素可拥有指定的默认值或固定值
★4.7属性声明
①XML属性不能嵌套,不能重复,也不能具有基数。
②可以使用XSD的元素表示复合元素的属性
③属性的类型必须是简单类型之一:
boolean、byte、date、dateTime、decimal、double、 duration、float、integer、language、long、short、string、 time、token
简易元素无法拥有属性
④定义属性
<xs:attribute name="xxx" type="yyy"/>
属性可拥有指定的默认值或固定值
可选的和必需的属性
★4.8XSD 限定
用于为 XML 元素或者属性定义可接受的值
限定
xs:restriction base=“xs:XXX”
限定类型
xs:enumeration
限定枚举约束
xs:pattern
限定一系列值
xs:whiteSpace
限定空白符
xs:length/maxLength/minLength
限定长度
4.9简单类型
通过创建<simpleType>
来自定义数据类型,基于一个所支持的数据类型,然后向这个数据类型中添加约束来创建新的数据类型。
★4.10复合类型
①一个元素假如包含子元素和/或子属性,则该元素为复合类型。
②可以使用**<complexType>
**元素来定义结构化类型
③复合类型定义通常包含一组元素声明、元素引用和属性声明
④有四种类型的复合元素
空元素
包含其他元素的元素
仅包含文本的元素
包含元素和文本的元素
定义复合元素
有两种方式来定义复合元素 : 通过命名此元素 使用type属性,引用要使用的复合类型的名称
XSD复合类型指示器
通过指示器,可以控制在文档中使用元素的方式。
有七种指示器:
Order 指示器,用于定义元素的顺序
All:子元素可以按照任意顺序出现,且每个子元素必须只出现一次。
Choice:定可出现某个子元素或者可出现另外一个子元素(非此即彼)。(多选1)
Sequence:元素必须按照特定的顺序出现。
Occurrence 指示器,用于定义某个元素出现的频率
maxOccurs(某个元素可出现的最大次数)、minOccurs (某个元素能够出现的最小次数)
Group 指示器,用于定义相关的数批元素
Group name:元素组,通过group声明进行定义
<xs:group name=”xx”>
声明
</xs:group>
<xs:group ref=”xx”/>
引用
attributeGroup name:属性组,通过attributeGroup声明来进行定义
<xs: attributeGroup name=”xx”>
<xs: attributeGroup ref=”xx”/>
XSD <any>
元素:
<xs:any/>
可以通过未被schema规定的元素来拓展
XSD <anyAttribute>
元素
<xs:anyAttribute/>
可以通过未被schema规定的属性来扩展
元素替换:substitutionGroup
4.11派生的复合类型
①扩展:可以扩展复合类型,不能修改或删除已有的属性
<xs:extension base="PO:已有属性名">
</xs:extension>
②约束:通过删除属性、对属性进行约束以及设置内容模型的子集,可以对复合类型进行约束。
<xs:restriction base="PO:已有属性名">
</xs:restriction>
★4.12导入模式与包含模式
在XSD中,使用include元素和import元素实现模式的组合,称为包含模式和导入模式。
可以有效地“继承”被引用的模式中的属性和元素
import和include有两点主要的不同:
①include元素仅在相同的命名空间中使用,import可以跨不同的命名空间使用。
②include元素具体地引入其他的模式文档,import元素依赖另一个命名空间,但不需要另一个模式文档。