Web Service学习小札

Web Service概念
一些功能的接口.
实现需要:
一种独立于平台的数据交换格式
一种描述数据结构的方法.
打包数据的标准方法.
Web 服务描述自身,它们能够进行的操作和客户所需的数据结构的一种方法
通过Web服务的功能或描述以编程方式定位Web服务的一个框架.
 
优点
数据以纯文本方式存储,可实现各种平台之间的数据通信.
分部式部署,易于更新,维护.
 
工作原理
请求-回应模式
 
Web服务标准
XML---独立于平台的数据交换格式
XML模式---描述数据结构的方法
SOAP---打包数据的标准方法
WSDL---服务描述
UDDI---定位Web服务
 
XML基本知识
XML是用结构化的方法存储数据的纯文本格式.数据的存储和传输不如专用的方法高效,但它有移植性和可读性的优势.
XML文文件的结构
XML文檔的序言
文檔序言一般以一个声明开始,指明这个文件是一个XML文件,然后是文檔遵守的的XML版本和字符编码方法, 一般语法为:
<?xml version=”1.0” encoding=”UTF-8”?>
<?和?>标记用于分隔处理指令.处理指令不是用来包含资料,而是用来向处理XML文件的应用程序传达指令.
序言也可以包含一个doctype的引用.语法:
<!DOCTYPE docTypeName SYSTEM “docTypeURL”>
XML文檔体
文文件体由元素和属性构成
元素
在XML中用以标记文本的基本构件.以一个开始标记和一个结束标记组成.如:
<Lu>Context</Lu>
空元素表示法
<Lu></Lu>
简写
<Lu/>
属性
元素可以有属性,属性一般用来传达包含在元素中的数据的一些信息.语法如下:
<Lu atrr=”value”></Lu>
元素和属性的命名
可以包含大写字母,小写字母,数字和下划线,也可以用”-“,”.”,但不能以数字或标点符号开头,不能以字符串XML(不分大小写)开头,而且不能有空白.
注:XML中大小写敏感.
实体
&amp; --- &
&lt;---<
&gt;--->
&apos;---‘
&quot;---“
另外,也可以用字符对应的字符码来表示字符,例如:
&#n;---十进制
&#xn;---十六进制
如&#41,&#41.
 
CDATA区域
CDATA区域是可以使用特定字符的另一个地方
语法
<![CDATA[ Context ]]>
 
格式良好的XML文文件只有一个根元素,没有元素的重迭
 
XML模式
用于定义XML文本的结构和上下文,XML模式本身是用XML编写的.
模式规范由两个部分组成:
1.          结构---描述如何使用模式为XML提供它必须遵守的结构.
2.          数据类型---描述数据内容的约束.
 
XML模式通常存储在扩展名为.XSD的文件中.根元素总是<xsd:schema>,例如
<xsd:schema xmlns:xsd=” http://www.w3.org/2001/XMLSchema”>
…schema body…
</xsd:schema>
 
在XML模式中,用类型来定义元素和属性.有以下两种类型:
简单类型---用来定义不带属性或子元素的元素,或用来定义属性
复杂类型---用来定义带属性或子元素的元素
 
模式定义
元素定义
元素用<element>定义,它可包含下列属性:

name
被定义的元素名称
type
指定元素可以包含什么内容
default
元素的默认值 .
fixed
指定元素为定值 .
minOccurs
元素出现的最小次数
maxOccurs
元素出现的最大次数 , 设为 ”unbounded”, 则元素出现次数不受限制
mixed
指示元素是否可以有元素 , 也有文本
nillable
元素是否可以为空
ref
对已经定义的元素的引用

 
属性用<attribute>定义,它可包含下列属性:

name
被定义的属性名称
type
指定属性可以包含什么内容
use
必须是 optional,required,prohibited 之一 .
default
属性的默认值 .
fixed
指定属性为定值 .
ref
对已经定义的属性的引用

 
如果要用<element>来定义一个包含子元素或属性的元素,则其type属性的值应该是用<complexType>定义的类型, <complexType>有一个name属性,用以指定类型的名称.可包含下列子元素:

<all>
它包含的元素必须全部出现在被模式验证的 XML
<sequence>
它包含的元素必须全部出现在被模式验证的 XML , 且按定义的顺序
<choice>
它包含的元素有且只有一个出现在被模式验证的 XML

注: <sequence>,<choice>可以包含这三个元素.
元素和属性定义出现在<complexType>中.用以定义类型
 
可用<group>元素定义一组元素, <group>有name和ref属性.可包含<all>,<sequence>,<choice>元素.
 
可用<attributeGroup>元素定义一组属性, <attributeGroup>有name和ref属性
 
<any>元素可以引用任何已定义的元素.
<anyAttribute>元素可以引用任何已定义的属性.
个人认为用处不多,呵呵!
 
模式类型的定义
类型可分为以下三类
原子类型---包含给定类型的一个单一的值.
列表类型---包含一个单一类型的多个值.
共享---包含一个单一的值,可能是原子类型或列表类型
 
派生新类型可能过下面几种方式:
限制派生---限制基类型中允许的值创建新的类型
列表派生---通过构成一个原子基类的列表来创建新的列表类型
共享派生---通过允许值来自两个或多个类型创建新的类型.
 
限制派生
语法
<xsd:simpleType name=”newTypeName”>
<xsd:restriction base=”baseTypeName”>
…face elements…
</xsd:restriction>
</xsd:simpType>
 
可用的限制条件如下表

约束
用途
<minExclusive>
派生类型的值必须大于该元素的 value 属性中指定的值 .
<maxExclusive>
派生类型的值必须小于该元素的 value 属性中指定的值 .
<minInclusive>
派生类型的值必须大于或等于该元素的 value 属性中指定的值 .
<maxInclusive>
派生类型的值必须小于或等于该元素的 value 属性中指定的值 .
<tatalDigits>
派生类型的值的数位必须小于或等于该元素的 value 属性中指定的值 .
<fractionDigits>
派生类型的值小数的位数必须小于或等于该元素的 value 属性中指定的值 .
<maxLength>
派生类型的值的字符数必须小于或等于该元素的 value 属性中指定的值 .
<minLength>
派生类型的值的字符数必须大于或等于该元素的 value 属性中指定的值 .
<length>
派生类型的值的字符数必须等于该元素的 value 属性中指定的值 .
<enumeration>
派生类型的值必须等于该元素的 value 属性中指定的值 . 或同一个 <simpleType> 元素中其它 <enumeration> 元素的 value 属性中指定的值
<whiteSpace>
值可以是 preserve,replace,collapse 中的一个 , 如果取 preserve, 则验证期间保留空白 ,replace, 则制表符 , 回车 , 换行符被空格代替 ,collapse, 则前后空格被删除 , 连续的空格被一个空格代替 .
<pattern>
Value 属性值包含一个正则表达式应用于这个类型的值进行验证 .

 
列表派生
语法
<xsd:simpleType name=”newTypeName”>
        <xsd:list itemType=”baseTypeName”/>
</xsd:simpleType>
 
共享派生
语法
<xsd:simpleType name=”newTypeName”>
        <xsd:union memberTypes=”baseTypeName1 baseTypeName2”/>
</xsd:simpleType>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值