WebService基本概念、XML

第1课第12~20页(重点P14,P20)

1.Web Service是什么?应用于?应用例?8个特点?接口?

1)Web Services是一种部署在Web上的对象或者是应用程序组件。
2)Web服务应用于互连设备、整合应用等。
3)应用举例

①应用程序集成
• 例如,某个公司内部
• 有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容
• 还有一个订单执行程序,用于实际货物发送的管理。这两个程序来自不同软件厂商
• 一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物
• 通过在订单执行程序上面增加一层Web服务,订单执行程序可以把“AddOrder”函数“暴露”出来
• 这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了
②B2B的集成
• 跨公司的商务交易集成通常叫做B2B集成
• Web服务是B2B集成成功的关键。通过Web服务,公司可以把关键的商务应用“暴露”给指定的供应商和客户
• 例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票
• 商务逻辑“暴露”成为Web服务,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI(Electronic Data Interchange, 电子数据交换) 的中小企业也能实现B2B集成
③软件和数据重用
• Web服务在允许重用代码的同时,可以重用代码背后的数据
• 使用Web服务,用户不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的Web服务即可
• 举例,邮政编码查询确认应用:
– 要在应用程序中确认用户输入的地址,只需把这个地址直接发送给相应的Web服务,这个Web服务就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址是否在相应的邮政编码区域
– 这样的服务要通过组件重用来实现是不可能的,否则用户必须下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库。并且,这个数据库还是不能实时更新的

4)8个特点

自包含 (self-contained)
– 在客户端不需要附加任何软件,只要客户机支持HTTP和XML。
自我描述 (self-describing)
– 在客户端和服务端都不需要知道除了请求和响应消息的格式和内容外的任何事。
跨平台和跨语言
– 客户端和服务端均可以在不同的平台和语言环境中实现,同时,不必为了支持Web Service而更改现有的代码。
基于开放的标准
– XML和HTTP是Web Services的主要技术基础,而XML和HTTP早就成了业内标准了。
可以组合
– 可以通过一个Web Service访问另外一个Web Service
– 通过组合Web Services实现更多复杂功能的复杂的服务
松散耦合 (loose coupling)
– 完全解耦了客户端和服务端
– 当一个Web Service发生变更时,对于客户端来说
• 只要调用接口不变,任何变更对他们来说都是透明的
• 如实现平台从J2EE迁移到了.NET或者是相反的迁移流程,用户都可以对此一无所知
提供编程访问的能力
– 可以通过编写程序来访问一个Web Service
通过网络进行发布、查找和使用

5)Web服务的接口可以看成一些函数,然后客户端再通过网络使用函数调用就可以使用这些服务。

2.SOA全称?特征?核心是什么?

1)面向服务的架构(Service Oriented Architecture)。
2)分布式、异构系统间的通信。
3)服务是核心。服务要求中立,即跨平台和独立于编程语言。

第1课第26页,第31页,第38~56页(重点看概念)

1.XML全称?是什么?作用?3个特征?与HTML的区别?

1)可扩展标记语言(Extensible Markup Language)。
2)基于文本的可扩展标记语言。
3)以结构化格式存储数据。

– 文本:可以在各种计算机平台上使用
– 结构化:可以通过解析器在任何机器上解读
– 标准化:跨平台的数据存储技术、与硬件和软件均无关

4)结构性、嵌套性、简单性。
5)XML与HTML不同之处

– 语法要求不同
• 在 HTML中不区分大小写,在 XML 中对大小写要求非常严格。
– 标记不同
• HTML使用固有的标记,而 XML 没有固有标记。
– 作用不同
• HTML标记用于显示数据,而 XML 为存储数据。
– 数据的搜索
• 在XML中可以提取文档中任何位置的数据。
– 数据的显示
• XML将数据的结构和数据的显示形式分开,根据需要使数据呈现出多种显示方式,如HTML、PDF等格式。
– 数据的交换
• XML标记语言的语法非常简单,可以通过解析器在任何机器上解读。

2.XML文档的组成?结构构成?

1)XML文档由数据以及描述该数据的标记组成。
2)XML文档由XML声明以及XML元素构成。
<?xml version="1.0" encoding="GB2312"?>          < !-- XML属性 -- >
<booklist>                                        < !-- XML元素 -- ><book isbn="7-04-008653-0"><name>数据通信与计算机网络</name><author>张三</author><price>23.9</price></book><book isbn="7-81112-527-6"><name>数据结构</name><author>李四</author><price>30.00</price></book>
</booklist>

3.XML声明?

<?xml version="1.0" encoding="UTF-8"?>
• XML 声明必须写在每一个 XML 文档的第一行,以标记这是一个XML文档。
– 在 Windows 平台上,后缀名为 .xml 的即为 XML 文档,但在其他平台上,只能用 XML 声明进行说明——后缀名可省略,但建议加上。
• XML声明的格式为:<?xml version="1.0" encoding="**"?>。
• 通常,上面格式中可省去 encoding,但必须有 version <?xml version="1.0"?>。
• version属性
– XML文档的版本号,值可以为“1.x”,其中x可以是0-9的数字,表示 1.0 文档的第几个版本。
– 但当XML 1.0 处理器遇到“1.x”而不是“1.0”的版本数字时,它将把其当做“1.0”文档处理,所以约定version声明为“1.0”。
• encoding属性
– XML文档的字符集。
– XML文档的默认字符集是UTF-8,源文件保存时选择UTF-8格式,则XML文档存储的内容支持中文。
– 如果XML源文件使用的是ASCII码,则不能存储中文内容。

<?xml version="1.0" encoding="GB2312"?>
<hello>你好,世界!</hello>

4.元素?元素的命名规则?作用?元素的内容?嵌套?根元素的特征?

1)XML 元素(element)由XML标记(tag)确定,标记分为开始标记和结束标记,必须成对出现。
<name> 张三 </name>
2)命名规则

①严格区分英文字母的大小写。
②不能使用 <、>、?、/、&、+、* 等符号作为元素名。
③首字符是英文、汉字字符或其他字符,后跟数字或其他符号。
– 首字符不能用数字、语音符号、英文句号(.)和连字符(-)开头,但可以使用英文冒号(:)和下划线(_)。
④不能使用“XML”三个字母的任意大小写搭配的字符串作为元素名称,或作为元素名的开头。
– 如:XML、xml、xMl、Xml…等。
⑤不能独立使用数字作为元素名。
⑥元素名中可以使用英文“_”、“.”、“:”、“-”等符号,但不可使用空格符。除用于名称空间描述外,最好不用冒号作为元素名,因为XML名称空间赋予冒号特殊的用途。

<3ab> </3ab>                 首字符数字开头
<123> </123>                    数字串
<Name> </name>                  首字母大小写不匹配
<person> </PERSON>              大小写不匹配
<xml-author> </xml-author>      使用保留字符串“xml”开头
<STUDENT?NO> </STUDENT?NO>      使用非法字符“?”
<press> <press>                 没有结束标签
<.student> </.student>          用“.”作首字符
<-teacher> </-teacher>          用“-”作首字符
<aut hor> </aut hor>            元素名含空格符
<NAME> < /NAME>                 “<”后加了空格符
<NAME> </ NAME>                 “/”后加了空格符
3)元素用来存储数据。
4)元素的内容就是需要存储的数据,元素名通常简单描述了数据的含义。
5)每一个子元素必须写在父元素的开始标记和结束标记之间。
6)根元素

• 每个XML文档必须有一个且只能有一个称之为“根”(root)的元素。
• 其他元素必须写在根元素的开始标记和结束标记之间,且正确嵌套。
• XML文档以根元素的结束标记作为文档结尾。

5.属性?写在哪里?

1)属性

• 元素的属性(attribute/property)提供元素的附加信息。
• 属性使用的格式:属性名称=属性值。
– 属性值为字符串时,需用单引号或者双引号包括起来。
• 元素的属性可以是一个,也可以是多个。
– 当出现多个属性时,每个属性之间用空格分隔。
– 多个属性又叫属性列表。
• 在XML文档中,属性和元素之间没有本质差别。
– 必须显示或必须频繁更新的数据,通常用元素指定。
– 必须频繁核对的数据,通常用属性指定。

<book isbn=“7-04-008653-0” id=123>       < !-- isbn,id都为属性 -- ><name>数据通信与计算机网络</name><author>张三</author><price>23.9</price>
</book>
2)属性出现在元素的开始标记里。

6.按要求凭空写一个xml文档(如描述哈利波特书的作业)

<?xml version="1.0" encoding="UTF-8"?>
<!-- 根据树结构写xml文档 -->
<bookstore><book catagory="Magical literary novel"><title lang>Harry Pottor</title><author>J.K.Rowling</author><year>2005</year><price>29.99</price></book>
</bookstore>

第2课第12页,16页,19页

1.5种实体是什么?

• 实体:用字符串表示一组特定含义。
– 在 XML 文档中,由于规定使用 <、>、’、”、& 等符号作为XML 文本的标记和内容声明的组成部分,我们通常把这些符号叫做XML的保留字。
– 当需要在 XML 文档数据中写入上述这些字符时,如果不进行转换,解析器将会把它们理解成XML规范定义的含义。
• XML的实体可分为5种:字符实体,命名实体,外部实体,参数实体,内部实体
• 除了预定义的保留字符外,还可以自定义实体。
– 在xml文档中引用另一个xml文档。
• 实体一般以一个与字符(&)开始,以一个分号(;)结束。

实体引用(无空格) 字符 字符名称
& lt; < 小于
& gt; > 大于
& amp; & 和号
& apos; ' 单引号
& quot; " 引号

2.CDATA 区段的作用?

CDATA区段(CDATA section)中的文本会被解析器忽略,不会被解析。

<![CDATA[不希望被解析的内容]]>

3.注释的作用?规则?

1)对XML文档的某些部分进行说明,使文档具有较好的可读性。
2)规则

– 注释不能出现在XML文档的第一行。
• XML规范要求,XML的声明必须位于XML文档的第一行。
– 注释可以出现在元素标记( “ < ”与“>”)以外的任何地方。
– 注释不能嵌套注释。

√    <!-- 注释文字 -->
×   <!-- 嵌套注释示例<!-- 被嵌套的注释 -->-->

第2课第24~25页,27~28页

1.名称空间的作用?URI全称?

1)解决同名不同义导致的含义混乱和名称冲突问题。
2)Uniform Resource Identifier,统一资源标识符。

2.默认名称空间?带前缀的名称空间?写法?写在哪里?

1)在元素的开始标签内定义一个默认名称空间则无需指定前缀 xmlns=“URI”

• xmlns是XML namespace的缩写,即XML名称空间。
– xmlns是固定的字符串。
– 用它来表示从这里开始是XML的名称空间声明。

<person xmlns="http://myst/js001">
<!--在person元素的开始标记里指定了名称空间,该元素的所有子元素,以及子元素的子元素都属于该名称空间--><name>…</name>
</person>
2)名称空间指定前缀(prefix),声明语法:xmlns:prefix=“URI”
3)prefix可以根据需要选择单个字符或者是字符串。

声明:<prefix:元素名> … </prefix:元素名>

<?xml version="1.0"?>
<goods xmlns:s="http://www.njtech.edu.cn/goods/shirts"
xmlns:t="http://www.njtech.edu.cn/goods/trousers"
xmlns:TV="http://www.njtech.edu.cn/goods/TV">
</goods>
…<e_appliances><TV:television><TV:name>海尔</TV:name></TV:television>
</e_appliances>…
4)名称空间除了可以在根元素中声明,还可以在子元素中声明。
<?xml version="1.0"?><goods><clothes><s:shirt xmlns:s="http://www.njtech.edu.cn/goods/shirts"><s:name>金利来</s:name></s:shirt><t:trousers xmlns:t="http://www.njtech.edu.cn/goods/trousers"><t:name>李宁</t:name></t:trousers>
……

第2课第42~48页,54页

1.XML Schema的特征?本质?文件后缀?根元素?

1)xmlns:xs这个名称空间必须在根元素上声明,并指定名称空间的前缀(通常是xs或者xsd)。
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://mynamespace/my"><xs:element name="root" type="xs:string"/>
</xs:schema>
2)Schema文档本身也是XML文档,需要XML声明。
3).xsd。
4)<xs:schema> … </xs:schema>。

2.目标名称空间是什么?和xml文档怎么对应?

1)目标名称空间属性

• 该Schema定义的元素和数据类型属于http://mynamespace/my空间。
• URI由用户自定义,不需要实际存在。

2)被XML引用的时候,和xmlns与xsi:schemaLocation对应
<?xml version="1.0"?>
<root xmlns="http://mynamespace/my"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mynamespace/my note.xsd">
文本数据
</root>

第2课第67页

1.simpleType的3种子元素?

①restriction:限定一个约束。

<xs:simpleType name=“xxx"><xs:restriction base="xs:string"> … </xs:restriction>
</xs:simpleType>

restriction常用子元素

子元素 作用
enumeration 枚举类型,供用户选择
fractionDigits 限定最大的小数位,用户控制精度
length 自定数据的长度
maxLength 指定长度的最大值
minLength 指定最小长度
maxExclusive 指定数据的最大值(小于)
maxInclusive 指定数据的最大值(小于等于)
minExclusive 指定数据的最小值(大于)
minInclusive 指定数据的最小值(大于等于)
pattern 正则表达式

②list:从列表中选择。

<xs:simpleType name=“xxx"> <xs:list itemType="xs:int"/>
</xs:simpleType>

③union:包含值的集合。

<xs:simpleType ><xs:union memberTypes=“xs:int xs:string" />
</xs:simpleType>

2.按要求凭空写一个schema文档(如定义性别类型的simpleType)

<?xml version="1.0" encoding="UTF-8"?>
<!-- 南工大学生信息数据类型 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><!-- 学号 --><xs:element name="StuID"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value=[0-9]{12}/></xs:restriction></xs:simpleType></xs:element><!-- 入学成绩 --><xs:element name="StuEntranceTestScore"><xs:simpleType><xs:restriction base="xs:decimal"><xs:maxExclusive value="600"/><xs:minExclusive value="300"/><xs:fractionDigits value="2"/></xs:restriction></xs:simpleType></xs:element><!-- 性别 --><xs:element name="StuGender"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="男"/><xs:enumeration value="女"/></xs:restriction></xs:simpleType></xs:element><!-- 年龄 --><xs:element name="StuAge"><xs:simpleType><xs:restriction base="xs:integer"><xs:maxExclusive value="100"/><xs:minExclusive value="0"/></xs:restriction></xs:simpleType></xs:element><!-- 手机号码 --><xs:element name="StuPhoneNumber"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-9]{11}"/></xs:restriction></xs:simpleType></xs:element>
</xs:schema>

第3课第17~18页,22页,25~26页,31~34页,35页

1.complexType的(嵌套)写法?定义属性的写法?定义元素的写法?

1)两种格式
<xs:element name="标记名"><xs:complexType>定义子元素,定义属性</xs:complexType>
</xs:element>
<xs:element name="标记名" type="自定义类型名称">
<xs:complexType name="自定义类型名称">定义子元素,定义属性
</xs:complexType>
2)属性
<xs:attribute name="xxxx" type="xxxx"/>
3)子元素:需要complexType和element间需要指定元素顺序的层。
<xs:element name="xxxx" type="xxxx"/>

2.use属性有哪些?Order指示器有哪些?

1)optional, required, prohibited
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="root"><xs:complexType> <xs:attribute name="category" type="xs:string" use="optional"/><xs:attribute name="id" type="xs:int" use="required"/><xs:attribute name="SID" use="prohibited"/></xs:complexType></xs:element>
</xs:schema>
2)(用来定义子元素顺序)

– xs:all
• 子元素可以以任意顺序书写
– xs:sequence
• 子元素必须按和定义一致的顺序书写
– xs:choice
• 仅可包含一个声明的子元素

3.Occurrence指示器有哪些?Group指示器有哪些?

1)(指定每个子元素可以出现的次数)

• minOccurs指定最少出现次数,取值>=0
• maxOccurs指定最多出现次数,无限制为unbounded
• 默认值均为1,即该元素必须出现1次

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="contact"><xs:complexType><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="phoneNumber" type="xs:string"minOccurs="1" maxOccurs="3"/></xs:sequence></xs:complexType></xs:element>
</xs:schema>
2)(按照批次定义元素或属性)

• 元素组的定义与引用:必须在 group 内部定义一个 all、choice 或者 sequence
元素。

<xs:group name="组名称"> ... </xs:group>

• 属性组的定义与引用:把一组属性定义组合在一起,以便可以被一起引用。

3.Schema的2种复用方法是什么?

– include
• 被包含的 Schema 文件可以不属于任何名称空间,但如果包含名称
空间,该名称空间必须与包含文件的名称空间保持一致
• 语法格式:

<include schemaLocation="被包含的 Schema 的文件" />

– import
• 元素专门用于复用不同名称空间的 • 被导入的 Schema 文件必须与当前文件定义不同的命名空间
• 语法格式:

<import schemaLocation="被包含的 Schema 的文件"
[namespace="被包含的 Schema 的文件的命名空间"] />

WebServices | 期末复习 · WebService基本概念、XML相关推荐

  1. 软件构造期末复习总结【一】:关于SCM和Git的一些概念整理

    目录 0.前言 1.SCM 1.1 一些概念 1.2 对于SCM的一些解释以及个人理解 2.Git 2.1 一些概念 2.2 Git的一些基本指令 0.前言 期末复习的时候感觉这部分的概念有点生疏了. ...

  2. 软件体系结构期末复习

    软件体系结构期末复习 标签(空格分隔): 未分类 回顾课本和TTP课件 内容总概 章节回顾 第1章.软件体系结构概论 0.软件体系结构的发展过程经历了四个阶段: (1)无体系结构阶段.(2)萌芽阶段. ...

  3. 【软件测试技术期末复习选择题】

    软件测试技术期末复习选择题 1.在软件测试阶段,测试步骤按次序可以划分为以下几步:( A ) A.单元测试.集成测试.系统测试.验收测试 B.验收测试.单元测试.系统测试.集成测试 C.单元测试.集成 ...

  4. 人工智能期末复习——速通知识点

    知识点是通过老师上课ppt整理,对于期末复习的基本考点都有涉及,以及计算题部分都有例题进行讲解,希望能帮助大家更好的复习. 人工智能期末复习 人工智能 一.绪论 二.知识表示与知识图谱 三.确定性推理 ...

  5. JSP Java 期末复习整理

    Java 期末复习 第一章 1.1.1 JSP 1.1.2 Jsp 优点 1.2.2 B/S技术工作原理 1.2.3 如何访问动态网页 1.2.4 -- Tomcat目录结构 1.2.6 -- Web ...

  6. 山东大学服务开发技术期末复习

    山东大学服务开发技术期末复习 课后习题 section 1 1.1 请简要论述为什么引入软件服务?1.2 简述 W3C 定义的 Web 服务技术栈主要组成.1.3 简述面向服务架构的三个角色和三个操作 ...

  7. WebService 基本概念

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

  8. Hadoop期末复习城科专用

    Hadoop期末复习 目录 Hadoop期末复习 一.Hadoop集群 概念解释: 1.Yarn 简答题 1.Hadoop集群6个核心配置文件以及它的作用 2.Hadoop集群部署方式以及各方式使用场 ...

  9. 【postgresql数据库】数据库整体知识完整版-2023电子科技大学期末复习

    <数据库>重要知识点 作者 内容 发布时间 博客地址 Github Trae1ounG 数据库复习 2023/6/3 Trae1ounG的博客_CSDN博客-软件测试,计算机组成原理,数据 ...

最新文章

  1. Averse, Adverse
  2. Linux下建立多实例Tomcat(独立JVM)
  3. YBTOJ洛谷P4551:最长异或路径(trie树)
  4. 夯实数字化转型算能基石 构建洛阳银行核心云
  5. ctypes安装_用python amp; bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本
  6. JavaScript对数组的常见操作
  7. mybatis分页插件_MyBatis 分页插件 5.2.0 发布
  8. 【背包问题】基于matlab萤火虫算法求解背包问题【含Matlab源码 1440期】
  9. 身份证地区码数据表-SqlServer版
  10. 艺电模拟城市开源代码读后感
  11. 大学一年级计算机科学与技术,计算机科学与技术系授课计划及课程表一年级.pdf...
  12. 大家知道老中医化妆品祛痘效果怎么样吗?
  13. 【msvcr120.dll下载】msvcr120.dll丢失怎么修复
  14. vns基本的变邻域搜索算法
  15. Oracle数据库管理系统(安装及入门教学)
  16. matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45
  17. 2022年长三角地区数学建模B题:齿轮箱故障诊断
  18. QPE(量子相位估计)
  19. AfterNodeInsertion方法
  20. 4年外包终上岸,我只能说这类公司能不去就不去..

热门文章

  1. python输入年月日输出年月日_【手把手教你】Python金融数据处理
  2. Tsinsen1295 necklace
  3. layer.load()
  4. 【老狼推荐】Instruments 用户指南
  5. Python头部信息的设置
  6. 程序框图计算机算法语言应用,第3讲 程序框图与算法语句
  7. 2022广州国际食品饮料包装展览会
  8. 有关单元测试的 5 个建议【每日小技巧】
  9. 及时止损,及时止损,及时止损
  10. 怎样取消老毛桃软件赞助商---只需在输入框中输入老毛桃官网网址“laomaotao.org”...