Structures" specification language that can be used to define an enumerated type. If schema by another without specific base type is used for the symbol system of generation, can use "string".
4.2.3 requires character array
A character array may be coded to single - reference or multi - reference value. Character arrays of encoding rules similar to the encoding rules of the string. In particular, contain elements of an array of characters values may be by an "id" attribute, additional accssor elements may have corresponding "href" attribute. Recommended definition in XMLSchemas [10] [11] in the 'base64 encoding (using the defined in 2045 [13] base64 encoding algorithm) said fuzzy character array. However, because of the limitation of governor degrees (linelength) are usually applied in the MIME base64 encoding, SOAP is generally not used in base64 encoding. But provides a "SOAP - ENC: base64" subtype can be used for SOAP.
4.3 polymorphic accessor
Polymorphic easily accessible to many language allows multiple accessor type value, each type is available at runtime. A polymorphic accessor instance must contain a "xsi: type attribute to describe the actual value type. For example, a value called the "cost type" to "XSD: float" polymorphic accessor encoding is as follows:
< costxsi: type = "XSD: float" > 29.95 < / cost > contrast, accessor encoding type values are as follows:
4.4 compoundtypes compound type
SOAP defines and often appear in the programming language of the following structural model of the corresponding type:
Structure: a "struct" is a composite value, its members value accessor name, is the only difference between any two accessor name is different.
Array: an "array" is a composite value, its members value the only difference is the ordinal position.
SOAP also allows structure and array of other data serialization, such as Directed - Labeled - GraphDataModel data, such as a single node has many different accssor, some appear more than once. SOAP serialization rules do not require the underlying data model to distinguish between accssor order, but if you have this order, these
accssor must be coded in this order.
附录B 汉语翻译
SOAP协议规范
1.简介
SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。
soap包括三个部分
soap封装结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。
SOAP编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制。
SOAPRPC表示定义了一个用来表示远程过程调用和应答的协定。
虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP封装,SOAP编码规则和SOAPRPC协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架[6]的情况下,SOAP消息如何包含在HTTP消息[5]中被传送。
1.1设计目标
SOAP的主要设计目标是简单性和可扩展性,这意味着传统的消息系统和分布对象系统的某些性质不是SOAP规范的一部分。这些性质包括:
分布式碎片收集
成批传送消息
对象引用(要求分布式碎片收集)
激活机制(要求对象引用)
1.2符号约定
这篇文章中的关键字
"MUST","MUSTNOT","REQUIRED","SHALL","SHALLNOT","SHOULD","SHO
ULDNOT","RECOMMENDED","MAY",和"OPTIONAL"的解释在RFC-2119[2]中。这篇文章中用到的名域前缀"SOAP-ENV"和"SOAP-ENC"分别与
"http://schemas.xmlsoap.org/soap/envelope/";和
"http://schemas.xmlsoap.org/soap/encoding/";关联。整篇文档中,名域前缀“xsi”被假定为与URI"http://www.w3.org/1999/XMLSchema-instance“(在XMLSchema规范[11]定义)相连。类似的,名域前缀”xsd“被假定为与
URI"http://www.w3.org/1999/XMLSchema";相连。名域前缀”tns“用来表示任意名域。所有其它的名域前缀都只是例子。
名域URI的基本形式”some-URI“表示某些依赖于应用程序或上下文的
URI[4]。这个规范用扩展BNF描述某些结构。
2.soap消息交换模型
SOAP消息从发送方到接收方是单向传送,但正如上面显示的,SOAP消息经常以请求/应答的方式实现。SOAP实现可以通过开发特定网络系统的特性来优化。例如,HTTP绑定使SOAP应答消息以HTTP应答的方式传输,并使用同一个连接返回请求。不管SOAP被绑定到哪个协议,SOAP消息采用所谓的”消息路径“发送,这使在终节点之外的中间节点可以处理消息。一个接收SOAP消息的SOAP应用程序必须按顺序执行以下的动作来处理消息:识别应用程序想要的SOAP消息的所有部分检验应用程序是否支持第一步中识别的消息中所有必需部分并处理它。如果不支持,则丢弃消息。在不影响处理结果的情况下,处理器可能忽略第一步中识别出的可选部分。如果这个SOAP应用程序不是这个消息的最终目的地,则在转发消息之前删除第一步中识别出来的所有部分。为了正确处理一条消息或者消息的一部分,SOAP处理器需要理解:所用的交换方式(单向,请求/应答,多路发送等等),这种方式下接收者的任务,RPC机制(如果有的话)的使用,数据的表现方法或编码,还有其它必需的语义。尽管属性可以用于描述一个消息的某些方面,但这个规范并不强制所有的接收方也必须有同样的属性并取同样的属性值。
与xml的关系
所有的SOAP消息都使用XML形式编码一个SOAP应用程序产
生的消息中,所有由SOAP定义的元素和属性中必须包括正确的名
域。SOAP应用程序必须能够处理它接收到的消息中的SOAP名域,
并且它可以处理没有SOAP名域的SOAP消息,就象它们有正确的