`
卡其色秋天
  • 浏览: 33281 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论
阅读更多

4. SOAP封装
SOAP
消息是一个XML文档,包括一个必需的SOAP封装,一个可选的SOAP头和一个必需的SOAP体。在这篇规范剩余部分中,提到SOAP消息时就是指这个XML文档。这一节中定义的元素和属性的名域标志符为:"http://schemas.xmlsoap.org/soap/envelope/" 。一个SOAP消息包括以下部分:

在表示这个消息的XML文档中,封装是顶层元素。
应用SOAP交换信息的各方是分散的且没有预先协定,SOAP头提供了向SOAP消息中添加关于这条SOAP消息的某些要素(feature)的机制。SOAP定义了少量的属性用来表明这项要素(feature)是否可选以及由谁来处理。(见4.2节)
SOAP
体是包含消息的最终接收者想要的信息的容器(见4.3节)。SOAPSOAP体定义了一个Fault元素用来报告错误信息。
语法规则如下所示:

封装
元素名是 "Envelope"
SOAP消息中必须出现。
可以包含名域声明和附加属性。如果包含附加属性,这些属性必须限定名域。类似的,"Envelope"可以包含附加子元素,这些也必须限定名域且跟在SOAP体元素之后。
SOAP
(见4.2节)
元素名是"Header"
SOAP消息中可能出现。如果出现的话,必须是SOAP 封装元素的第一个直接子元素。
SOAP
头可以包含多个条目,每个都是SOAP头元素的直接子元素。所有SOAP头的直接子元素都必须限定名域。
SOAP
(见4.3节)
元素名是"Body"
SOAP消息中必须出现且必须是SOAP封装元素的直接子元素。它必须直接跟在SOAP头元素(如果有的话)之后。否则它必须是SOAP封装元素的第一个直接子元素。
SOAP
体可以包括多个条目,每个条目必须是SOAP体元素的直接子元素。SOAP体元素的直接子元素可以限定名域。SOAP定义了SOAP Fault元素来表示错误信息。(4.4).
4.1.1 SOAP encodingStyle 属性
EncodingStyle
全局属性用来表示SOAP消息的序列化规则。这个属性可以在任何元素中出现,作用范围与名域声明的作用范围很相似,为这个元素的内容和它的所有没有重载此属性的子元素。SOAP消息没有定义缺省编码。

属性值是一个或多个URI的顺序列表,每个URI确定了一种或多种序列化规则,用来不同程度反序列化SOAP消息,举例如下:

"http://schemas.xmlsoap.org/soap/encoding/"
"http://my.host/encoding/restricted http://my.host/encoding/"
""

5节中定义的序列化规则由URI"http://schemas.xmlsoap.org/soap/encoding/" 确定。使用这个特定序列化规则的消息应该用encodingStyle属性说明这一点。另外,所有以"http://schemas.xmlsoap.org/soap/encoding/"开头的URI中的序列化规则与第5节中定义的SOAP编码规则相一致。
一个零长度的URI"")明确显示所含元素没有任何编码形式。这可以用来取消上一级元素的所有编码声明。

4.1.2 封装版本模型
SOAP
没有定义常规的基于主版本号和辅版本号的版本形式。SOAP消息必须有一个封装元素与名域"http://schemas.xmlsoap.org/soap/envelope/"关联。如果SOAP应用程序接收到的SOAP消息中的SOAP封装元素与其他的名域关联,则视为版本错误,应用程序必须丢弃这个消息。如果消息是通过HTTP之类的请求/应答协议收到的,应用程序必须回答一个SOAP VersionMismatch 错误信息(见4.4节)。

4.2 SOAP
SOAP
为相互通信的团体之间提供了一种很灵活的机制:在无须预先协定的情况下,以分散但标准的方式扩展消息。可以在SOAP头中添加条目实现这种扩展,典型的例子有认证,事务管理,支付等等。

头元素编码为SOAP封装元素的第一个直接子元素。头元素的所有直接子元素称作条目。

条目的编码规则如下:

一个条目有它的完整的元素名(包括名域URI和局部名)确定。SOAP头的直接子元素必须有名域限制。
SOAP encodingStyle
属性可以用来指示条目所用的编码形式(见4.1.1节)
SOAP mustUnderstand
属性(见4.2.3节)和SOAP actor属性(见4.2.2节)可以用来指示如何处理这个条目以及由谁来处理。(见4.2.1节)
4.2.1 使用头属性
这一节中定义的SOAP头属性确定了SOAP消息的接收者应该怎样按第2节中所述的方式处理消息。产生SOAP消息的SOAP应用程序,应该仅仅在SOAP头元素的直接子元素中使用这些SOAP头属性。SOAP消息的接收者必须忽略所有不在SOAP头元素的直接子元素中SOAP头属性。

下面的例子是一个SOAP头,包括一个元素标志符"Transaction""mustUnderstand"取值为"1"和数值5。这应该以如下方式编码:

<SOAP-ENV:Header>
 <t:Transaction
xmlns:t="some-URI" SOAP-ENV:mustUnderstand="1">
5
 </t:Transaction>
</SOAP-ENV:Header>

4.2.2 SOAP actor属性
一个SOAP消息从始节点到终节点的过程中,可能沿着消息路径经过一系列SOAP中间节点。一个SOAP中间节点是一个可以接收转发SOAP消息的应用程序。中间节点和终节点由URI区分。

可能SOAP消息的终节点并不需要所有部分,而在消息路径上的一个和几个中间节点可能需要这些内容。头元素的接收者扮演的角色类似于一个过滤器,防止这些只发给本接受者的消息部分扩散到其它节点。即一个头元素的接收者必须不转发这些头元素到SOAP消息路径上的下一个应用程序。同样的,接收者可能插入一个相似的头元素。

SOAP actor
全局属性可以用于指示头元素的接收者。SOAP actor属性的值是一个URIURI "http://schemas.xmlsoap.org/soap/actor/next"指出了第一个处理这个消息的SOAP应用程序需要这个头元素。这类似于HTTP头中用Connection域表示hop-by-hop范围模型。

省略SOAP actor属性表示接收者是SOAP消息的终节点。

如果这个属性要生效,它必须出现在SOAP消息实例中。(见第3节和4.2.1节)

4.2.3 SOAP mustUnderstand属性
SOAP mustUnderstand
全局属性用来指示接受者在处理消息时这个条目是否必须处理。条目的接收者由SOAP actor属性定义(见4.2.2节)。MustUnderstand属性的值是"1" "0"。缺少SOAP mustUnderstand属性在语义上等同于它的值为"0"

如果一个头元素的SOAP mustUnderstand属性的值是"1",那么条目的接受者必须或者遵守语义(如以元素的全名传送)并按照语义正确的处理,或者放弃处理消息(见4.4节)。

SOAP mustUnderstand
属性考虑了消息演变的准确性(robust evolution)。必须假定包含SOAP mustUnderstand属性且值为"1"的元素以某种方式修改了它们的父元素或同层元素的语义。以这种方式连接元素确保了语义上的变化不会被那些不能完全理解它的接收者忽略。

如果这个属性要生效,它必须出现在SOAP消息实例中。(见第3节和4.2.1节)

4.3 SOAP
SOAP
体元素提供了一个简单的机制,使消息的最终接收者能交换必要的信息。使用体元素的典型情况包括配置RPC请求和错误报告。

体元素编码为SOAP封装元素的直接子元素。如果已经有一个头元素,那么体元素必须紧跟在头元素之后,否则它必须是SOAP封装元素的第一个直接子元素。

体元素的所有直接子元素称作体条目,每个体条目在SOAP体元素中编码为一个独立的元素。

条目的编码规则如下:

一个条目由它的元素全名(包括名域URI和局部名)确定。SOAP体元素的直接子元素可能是名域限制的。
SOAP encodingStyle
属性可能用来指示条目(见4.1.1节)的编码方式。
SOAP
定义了一个Fault条目用来报告错误信息。(见4.4节)

4.3.1 SOAP头和体的关系
虽然头和体定义为独立的元素,它们实际上是有关系的。体条目和头条目的关系如下:体条目在语义上等同于actor属性为缺省值且mustUnderstand属性值为"1"的头条目。不使用actor属性则表示缺省的actor。(见4.2.2节)

4.4 SOAP错误
SOAP
错误元素用于在SOAP消息中携带错误和(或)状态信息。如果有SOAP错误元素,它必须以以体条目的方式出现,并且在一个体元素中最多出现一次。

SOAP
错误元素定义了以下四个子元素:

faultcode
faultcode
元素给软件提供了一个识别此错误的算法机制。SOAP错误元素必须有faultcode子元素,并且它的值必须是一个合法的名(在[8]节定义)。SOAP定义一些SOAP faultcode描述基本的SOAP错误(见4.4.1节)。
faultstring
faultstring
元素提供了一个错误解释,而不是为了软件处理。faultstring元素类似于HTTP中定义([5],第6.1节)的'Reason-Phrase'SOAP错误元素必须有faultstring子元素,并且它应该提供一些错误本质的解释信息。
faultactor
faultactor
元素提供了在消息路径上是谁导致了错误发生的信息(见第2节)。它类似于SOAP actor属性(见4.2.2节),只是SOAP actor指的是头条目的目的地,faultactor指的是错误的来源。faultactor属性的值是用来区分错误来源的URI。不是SOAP消息的最终目的地的应用程序必须在SOAP Fault元素中包含faultactor元素。消息的最终目的地可以使用faultactor元素明确的指示是它产生了这个错误(参见下面的detail元素)
detail
detail
元素用来携带与Body元素有关的应用程序所要的错误信息。如果Body元素的内容不能被成功的处理,则必须包含detail子元素。它不能用来携带属于头条目的错误信息。头条目的详细出错信息必须由头条目携带。
Fault
元素中没有detail元素表示这个错误与Body元素的处理无关。在有错误的时候,这可以用来区分Body元素有没有被正确的处理。

detail
元素的所有直接子元素称作detail条目,并且每个detail条目在detail元素中编码为独立的元素。

detail
条目的编码规则如下(参见例10):
一个detail条目由它的元素全名(包括名域URI和局部名)确定。SOAP体元素的直接子元素可能是名域限制的。
SOAP encodingStyle
属性可能用来指示detail条目(见4.1.1节)的编码方式。
也可以有其它的Fault子元素,只要它们是名域限制的。
4.4.1 soap 错误代码
在描述这个规范中定义的错误时,这一节中定义的faultcode值必须用在faultcode元素中。这些faultcode值得名域标志符为"http://schemas.xmlsoap.org/soap/envelope/"。定义这个规范之外的方法时推荐(不需求)使用这个名域。

缺省的soap faultcode值以可扩展的方式定义,允许定义新的soap faultcode值,并和现有的faultcode值向后兼容。使用的机制类似于http中定义的1xx, 2xx, 3xx等基本的状态类(见[5]10节),不过,他们定义为xml合法名(见 [8] 3 ),而不是整数。字符"."(点)作为faultcode的分隔符,点左边的错误代码比右边的错误代码更为普通。如:

client.authentication

这篇文件中定义的faultcode值是:

名称 含义
versionmismatch
处理方发现soap封装元素有不合法的名域(见4.1.2节)
mustunderstand
处理方不理解或不服从一个包含值为"1"mustunderstand属性的 soap头元素的直接子元素。(见4.2.3节)
client client
错误类表示消息的格式错误或不包含适当的正确信息。例如,消息可能缺少正确的认证和支付信息。一般地,他表示消息不能不作修改就重发。参见4.4soap fault detail子元素的描述。
server server
错误类表示由于消息的处理过程而不是消息的内容本身使得消息消息不能正确的处理。例如,处理消息时可能要和其他处理器通信,但他没有响应。这个消息可能在迟一点的时间处理成功。 soap fault子元素的周详信息参见4.4

5. soap编码
soap
编码格式基于一个简单的类型系统,概括了程式语言,数据库和半结构化数据等类型系统的一起特性。一个类型或是个简单的(标量的)类型,或是由几个部分组合而成的复合类型,其中每个部分都有自己的类型。以下将周详描述这些类型。这一节定义了类型化对象的序列化规则。他分两个层次。首先,给定一个和类型系统的符号系统一致的schema(译者注:这里的schema不是符合xml语法的schema,而仅仅表示广义的用于表示消息结构的定义方式),就构造了xml语法的schema。然后,给定一个类型系统的schema和和这个schema一致的特定的值,就构造了一个xml文件实例。反之,给定一个依照这些规则产生的xml文件实例和初始的schema,就能构造初始值的一个副本。

这一节中定义的元素和属性的名域标志符为"http://schemas.xmlsoap.org/soap/encoding/"。下面的例子都假定在上一层的元素中声明了名域。

鼓励使用这一节中描述的数据模型和编码方式,但也能在soap中使用其他的数据模型和编码方式。(见4.1.1节)

5.1 xml中的编码类型规则
xml
允许非常灵活的数据编码方式。soap定义了一个较小的规则集合。这一节在总的层次上定义了这些编码规则,下一节将描述特定类型的编码规则的细节。这一节定义的编码规则能和第7节中所述的rpc调用和应答映射结合使用。

下面的术语用来描述编码规则:

一个"value"是个字符串,类型(数字,日期,枚举等等)的名或是几个简单值的组合。所有的值都有特定的类型。
一个"simple value"没有名部分, 如特定的字符串,整数,枚举值等等。
一个"compound value"是相关的值的结合,如定单,股票报表,街道地址等等。
"compound value"中,每个相关的值都潜在的以名,序数或这两者来区分。这叫作"accessor"。复合值的例子有定单和股票报表等等。数组也是复合值。在复合值中,多个accessor有相同的名是允许的,例如rdf就是这样做的。
一个"array"是个复合值,成员值按照在数组中的位置相互区分。
一个"struct"也是个复合值,成员值之间的唯一差别是accessor名,accessor名互不相同。
一个"simple type"是简单值的类,如叫做"string" "integer"的类,更有枚举类等等。
一个"compound type"是复合值的类。复合类型的例子有定单类,他们有相同的accessor名(shipto, totalcost等),但可能会有不同的值(可能以后被设置为确定的值)。
在复合类型中,如果类型内的accessor名互不相同,不过可能和其他类型中的accessor名相同,即,accessor名加上类型名形成一个唯一的标志符,这个名叫作"局部范围名"。如果名是直接或间接的基于uri的一部分,那么不管他出目前什么类型中,这个名本身就能唯一标志这个accessor,这样的名叫作"全局范围名"
给定了schema中相关的值的序列化信息,就可能确定某些值只和某个accessor的一个实例有关。其他情况下则无法确定。当且仅当一个accessor引用一个值,这个值才能被视为"single-reference",如果有不止一个accessor引用他,那么就将他视为"multi-reference"。注意,可能一个确定的值在一个schema中是"single-reference",而在另一个schema中是"multi-reference"
在语句构成上,一个元素可能是"independent" "embedded"。一个独立的元素指出目前序列化最顶层的所有元素。所有其他元素都是嵌入元素。
虽然用xsi:type属性能使值的结构和类型变为自描述的,不过序列化规则允许值的类型仅仅参照schema而定。这样的schema可能使用"xml schema part 1: structures" [10]"xml schema part 2: datatypes" [11]中描述的符号系统,也可能使用其他符号系统。注意,虽然序列化规则能用于除了数组和结构之外的复合类型,不过许多schema仅仅包含数组和结构类型。

序列化规则如下:

所有的值以元素内容的形式表示。一个multi-reference值必须表示为一个独立元素的内容,而一个single-reference值最佳不要这样表示(也能这样表示)。
对于每个具有值的元素,值的类型时必须用下述三种方式之一描述:(a)所属元素实例有xsi:type属性 (b)所属元素是个有soap-enc:arraytype 属性(该属性可能是缺省的)的元素的子元素,或(c)所属元素的名具有特定的类型,类型能由schema确定。
一个简单值表示为字符数据,即没有所有子元素。每个简单值必须具有一个类型,这个类型或是xml schemas specification, part 2 [11]有的类型,或具有源类型(参见5.2节)。
一个复合值编码成一个元素的序列,每个accessor用一个嵌入元素表示,该元素的元素名和accessor的名一致。如果accessor的名是局部于其所属的类型的,则该元素的元素名不是合格的,否则对应的元素名是合格的。(参见5.4)
一个multi-reference的简单值或复合值编码成一个独立的元素,这个元素包含一个局部的无需校验的属性,属性名为"id",类型为"id"(依照xml specification [7])。值的每个accessor对应一个空元素,该元素有一个局部的,无需校验的属性,属性名为"href",类型为" uri-reference "(依照xml schema specification [11]),"href"属性的值引用了相对应的独立元素的uri标志符。
字符串和字符数组表示为multi-reference的简单类型,不过特别的规则使他们在普通的情况下能被更有效的表示(参见5.2.1节和5.2.3节)。字符串和字符数组值的accessor可能有一个名字为"id",类型为"id"(依照xml specification [7])的属性。如果这样,所有这个值的所有其他accessor编码成一个空元素,这个元素有一个局部的,无需校验的属性,属性名为"href",类型为" uri-reference "(依照xml schema specification [11]),"href"属性的值引用了包含这个值的元素的uri标志符。
编码时允许一个值有多个引用,就像多个不同的值有多个引用相同,但这仅在从上下文能知道这个xml文件实例的含义没有改动时才可使用。
数组是复合值(参见5.4.2节)。soap数组定义为具有类型"soap-enc:array"或从他衍生的类型.

soap
数组能时一维或多维,他们的成员以序数位置相互区分。一个数组值表示为反映这个数组的一系列元素,数组成员按升序出现。对多维数组来说,右边的这一维变化最快。每个成员元素命名为一个独立元素。(见规则2

soap
数组能是single-reference multi-reference值,因此能表示为嵌入元素或独立元素的内容。

soap
数组必须包含一个"soap-enc:arraytype"属性,他的值指定了包含元素的类型和数组的维数。"soap-enc:arraytype"属性的值定义如下:
  arraytypevalue = atype asize
  atype          = qname *( rank )
  rank           = "[" *( "," ) "]"
  asize          = "[" #length "]"
  length         = 1*digit
  
"atype"
结构是被包含元素的类型名,他表示为qname并且作为类型限制在xml元素声明的"type"属性中出现(这意味着被包含元素的所有值都要和该类型一致,即在soap-enc:arraytype中引用的类型必须是每个数组成员的类型或超类型)。在arrays of arrays or "jagged arrays"的情况下,类型组件编码为"innermost"类型且在从第一层开始的嵌套数组的每一层中,类型名后都跟随一个rank结构。多维数组编码时从第一维起,每一维之间用逗号隔开。

"asize"
结构包含一个以逗号分隔的列表,数值01或其他整数表示数组每一维的长度。整数0表示没有指定周详的大小,不过可能在检查数组实际成员的大小后确定。

例如,一个5个成员的整型数组的arraytypevalue值为"int[][5]",他的atype值是int[]"asize值是"[5]"。同样,一个3个成员的两维整型数组的arraytypevalue值为"int[,][3]",他的atype值是int[,]"asize值是"[3]"

一个soap数组成员可能包含一个"soap-enc:offset"属性表示这一项在整个数组中的位置偏移值。这被用来指示一个部分储值数组(见5.4.2.1节)的位置偏移值。同样,一个数组成员可能包含一个"soap-enc:position"属性表示这一项在整个数组中的位置,这被用来描述稀疏数组(见5.4.2.2节)的成员。"soap-enc:offset" "soap-enc:position"属性值的定义如下:



arraypoint = "[" #length "]"
偏移值和位置从0开始

null
值或缺省值可能通过省略accssor元素来表示。null值也可能通过一个包含值为1xsi:null属性的accssor元素来表示,其他的依赖于应用程式的属性和值也可能用来表示null值。
注意,规则2允许独立的元素和数组成员名不同于值类型的元素。

5.2 简单类型
soap
采用了"xml schema part 2: datatypes"规范[11]"built-in datatypes"节中的所有类型作为简单类型,包括值和取值范围。例如:

类型  举例
int 58502  
float 314159265358979e+1
negativeinteger  -32768
string louis "satchmo" armstrong

xml schema规范中声明的数据类型能直接用在元素schema中,也能使用从这些类型衍生的新类型。一个schema和对应的具有这些类型的元素的数据实例的例子如下所示:

<element name="age" type="int"/>
<element name="height" type="float"/>
<element name="displacement" type="negativeinteger"/>
<element name="color">
  <simpletype base="xsd:string">
    <enumeration value="green"/>
    <enumeration value="blue"/>
  </simpletype>
</element>

<age>45</age>
<height>5.9</height>
<displacement>-450</displacement>
<color>blue</color>

所有简单值必须编码为元素的内容,他的类型或在"xml schema part 2: datatypes"规范[11]中定义过,或是基于一个用xml schema规范提供的机制能推衍生出的类型。

如果一个简单值编码为独立元素或异质数组成员,那么有一个对应于数据类型的元素声明将会非常方便。因为"xml schema part 2: datatypes"规范[11]包括了类型定义,不过不包括对应的元素声明,soap-enc schema和名域为每个简单数据类型声明了一个元素,如

<soap-enc:int id="int1">45</soap-enc:int>
5.2.1 字符串
字符串数据类型的定义在"xml schema part 2: datatypes"规范[11]中。注意,这不同于许多数据库和程式语言中的"string"类型,特别的,字符串数据类型可能禁止某些在那些语言中允许的字符。(这些值必须用xsd:string之外的数据类型表示)

一个字符串可能编码为一个single-reference multi-reference值。

包含字符串值的元素可能有一个"id"属性。附加的accessor元素可能有对应的"href"属性。

例如,同一字符串的两个accessor可能以如下形式出现:

<greeting id="string-0">hello</greeting>
<salutation href="#string-0"/>
不过,如果两个accessor参考同一字符串实例(或字符串的子类型),这不是个实质问题,他们能编码为两个single-reference值,如下所示:

<greeting>hello</greeting>
<salutation>hello</salutation>
这个例子的schema片断如下所示:

<element name="greeting" type="soap-enc:string"/>
<element name="salutation" type="soap-enc:string"/>

在这个例子中,soap-enc:string类型用作元素的类型,这是声明数据类型是"xsd:string"且允许"id" "href"属性的元素的简便方法。精确定义参见soap编码schemaschemas能使用这些源自soap编码schema的声明,但也能不这样做。

5.2.2 enumerations
"xml schema part 2: datatypes"
规范 [11] 定义了"enumeration."机制。soap数据模型直接采用了这种机制。不过,由于程式语言和其他语言在定义枚举时通常有些不同,所以我们在这里周详阐述了他的概念并描述了一个列表成员的可能取的值是怎么编码的。

"enumeration"
作为一个概念表示不同的名字的集合。一个特定的枚举就是对应于特定的基类型的不同的值的列表。例如,颜色集合("green", "blue", "brown")能定义为基于字符串类型的枚举,("1", "3", "5")可能是个基于整型数的枚举,等等。"xml schema part 2: datatypes" [11]支持除了布尔型以外所有简单类型的枚举。"xml schema part 1: structures"规范[10]的语言能用来定义枚举类型。如果schema由另一个没有特定基类型适用的符号系统生成,就使用"string"。在下面schema的例子中,"eyecolor"定义为字符串,可能的值是"green", "blue", "brown"的枚举,数据实例按照schema显示如下。

<element name="eyecolor" type="tns:eyecolor"/>
<simpletype name="eyecolor" base="xsd:string">
   <enumeration value="green"/>
   <enumeration value="blue"/>
   <enumeration value="brown"/>
</simpletype>

<person>
   <name>henry ford</name>
   <age>32</age>
   <eyecolor>brown</eyecolor>
</person>

5.2.3 字符数组
一个字符数组可能编码为single-reference multi-reference值。字符数组的编码规则和字符串的编码规则类似。

特别的,包含字符数组的元素值可能由一个"id"属性,附加的accssor元素可能有相应的"href"属性。

推荐使用定义在xml schemas [10][11]中的base64编码(使用在2045 [13]中定义的base64编码算法)表示模糊字符数组。不过,由于行长度(line length)的限制,通常在mime中应用base64编码,soap中一般不应用base64编码。不过提供了"soap-enc:base64"子类型使之能用于soap

<picture xsi:type="soap-enc:base64">
   ag93ig5vdybicm73bibjb3cncg==
</picture>

5.3 多态accessor
许多语言允许能够多态访问多种类型值的accessor,每种类型在运行时可用。一个多态accessor实例必须包含一个"xsi:type"属性描述实际值的类型。

例如,一个名为"cost"类型值为"xsd:float"的多态accessor编码如下:

<cost xsi:type="xsd:float">29.95</cost>
和之对比,类型值不变的accessor编码如下:

<cost>29.95</cost>
5.4 compound types复合类型
soap
定义了和下列常在程式语言中出现的结构性模式对应的类型:

结构
一个"struct"是个复合值,他的成员值的唯一差别是accessor名称,任意两个accessor名称都不相同。
数组
一个"array"是个复合值,他的成员值的唯一差别是序数位置。
soap
也允许结构和数组之外的其他数据的序列化,例如directed-labeled-graph data model之类的数据中,单个节点有许多不同的accssor,有些不止出现一次。soap序列化规则不需求底层的数据模型在accssor之间区分次序,但如果有这样的次序的话,这些accssor必须按照这个顺序编码。

分享到:
评论

相关推荐

    SOAP_1.2规范

    SOAP 1.2 规范是Web服务交互中一个重要的通信协议标准,由World Wide Web Consortium(W3C)制定并发布。这个规范提供了一种简单且轻量级的方法,使得在分散、松散耦合的环境中,XML可以用于结构化和类型化的信息...

    soap协议规范.pdf

    ### SOAP协议规范详解 #### 一、概述 SOAP(Simple Object Access Protocol)是一种基于XML的信息交换协议,旨在为分布式环境中不同应用之间的通信提供一种标准化的方法。该协议规范由多个部分组成,包括SOAP封装...

    soap规范web service调用

    ### SOAP规范Web Service调用详解 #### 一、SOAP简介 **SOAP**(Simple Object Access Protocol)是一种基于XML的标准协议,用于在分布式环境中交换结构化的信息。它定义了一种消息格式,使得不同应用之间可以通过...

    soap协议规范 soap协议规范

    此外,SOAP规范还定义了两种协议绑定,说明了如何在HTTP消息中承载SOAP消息,即使在没有HTTP扩展框架的情况下。SOAP消息通常通过HTTP POST方法发送,HTTP头中包含了SOAPAction,用于标识调用的服务操作。 在SOAP...

    SOAP协议规范(中文版).doc

    这个中文文档虽然不是完整的SOAP规范,但提供了SOAP的基本框架和概念,有助于初学者理解SOAP的工作原理。更详细的规范和实践指南可以从W3C或其他资源获取。为了深入理解和应用SOAP,建议参考官方的英文文档以获取最...

    SOAP协议规范(中文)

    SOAP协议规范,从网上找到的,备份一下。

    SOAP协议规范——SOAP详解

    2. **SOAP消息模型:** SOAP支持两种消息模型——RPC(Remote Procedure Call,远程过程调用)和Document(文档)。RPC模型模拟传统的函数调用,而Document模型则关注数据的交换,不关心调用行为。 3. **SOAP绑定...

    SOAP协议规范中文版

    SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中...

    SOAP协议最新规范文档

    2. **SOAP编码规则**:SOAP编码规则定义了一套机制,用于将应用程序定义的数据类型实例编码为XML。这允许不同平台和语言之间能够交换复杂的数据结构。 3. **SOAP RPC表示**:SOAP支持远程过程调用(RPC)模式,定义...

    SOAP1.2协议规范

    2. **SOAP1.2协议模型** SOAP1.2采用请求-响应模型,即客户端发送一个SOAP消息到服务器,服务器处理后返回响应。这种模型保证了服务的交互性和同步性。 3. **SOAP动作** 在SOAP1.2中,"SOAPAction" HTTP头字段被...

    Soap 协议规范

    Soap协议规范。 SOAP 以XML 形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信 息的机制。

    SOAP协议规范 中文的

    2. **SOAP编码规则**:SOAP编码规则定义了如何将应用程序定义的数据类型实例化为XML格式。这使得不同系统之间可以交换复杂的数据结构。 3. **SOAP RPC表示**:这部分规定了如何表示远程过程调用和响应。SOAP允许...

    SOAP协议规范

    **SOAP协议规范** SOAP(Simple Object Access Protocol,简单对象访问协议)是一种轻量级的、基于XML的协议,用于在Web服务中交换结构化和类型化的信息。它允许应用程序通过HTTP或其他传输协议发送和接收数据,...

    SOAP1.2规范

    SOAP 1.2 规范是Web服务交互中的一种重要标准,由W3C(万维网联盟)制定,旨在促进XML(可扩展标记语言)在分布式环境中的结构化信息交换。SOAP,全称为Simple Object Access Protocol(简单对象访问协议),提供了...

    soap协议规范

    在SOAP规范中,“MUST”、“SHALL NOT”、“SHOULD”等关键词遵循RFC-2119的规定,用于指示协议的强制性要求和建议。同时,SOAP使用了一系列的名域前缀来关联特定的URI,例如“SOAP-ENV”与SOAP信封相关的URI关联,...

    中文Soap协议规范

    除了上述核心部分,SOAP规范还定义了两种协议绑定,即如何将SOAP消息封装在HTTP消息中进行传输。这包括了在标准HTTP和带有扩展的HTTP环境下的消息传递。例如,HTTP POST方法常用于发送SOAP请求,而HTTP响应则用于...

    soap-build生成Soap接口请求报文

    在Java开发中,处理SOAP请求通常涉及创建符合SOAP规范的XML字符串,这可能是一项繁琐的任务。 “soap-build”工具的出现,就是为了简化这个过程。它专为Java开发者设计,能够自动生成符合指定接口规范的SOAP请求...

    SOAP协议规范详解

    **SOAP协议规范详解** SOAP(Simple Object Access Protocol)是一种轻量级、基于XML的协议,主要用于在Web服务中传递结构化和类型化的信息。它允许应用程序通过HTTP等传输协议进行远程调用,使得不同系统之间的...

Global site tag (gtag.js) - Google Analytics