`

Java Web- Changes Between SOAP 1.1 and SOAP 1.2

 
阅读更多
SOAP Version 1.2 has a number of changes in syntax and provides additional (or clarified) semantics from those described in [SOAP 1.1]. The following is a list of features where the two specifications differ. The purpose of this list is to provide the reader with a quick and easily accessible summary of the differences between the two specifications. The features have been put in categories purely for ease of reference, and in some cases, an item might equally well have been placed in another category.

Document structure

The SOAP 1.2 specifications have been provided in two parts. [SOAP Part1] provides an abstract Infoset-based definition of the SOAP message structure, a processing model and an underlying protocol binding framework, while [SOAP Part2] provides serialization rules for conveying that infoset as well as a particular HTTP binding.
SOAP 1.2 will not spell out the acronym.
SOAP 1.2 has been rewritten in terms of XML infosets, and not as serializations of the form <?xml....?> required by SOAP 1.1.
Additional or changed syntax

SOAP 1.2 does not permit any element after the body. The SOAP 1.1 schema definition allowed for such a possibility, but the textual description is silent about it.
SOAP 1.2 does not allow the env:encodingStyle attribute to appear on the SOAP env:Envelope, whereas SOAP 1.1 allows it to appear on any element. SOAP 1.2 specifies specific elements where this attribute may be used.
SOAP 1.2 defines the new env:NotUnderstood header element for conveying information on a mandatory header block which could not be processed, as indicated by the presence of an env:MustUnderstand fault code. SOAP 1.1 provided the fault code, but no details on its use.
In the SOAP 1.2 infoset-based description, the env:mustUnderstand attribute in header elements takes the (logical) value "true" or "false", whereas in SOAP 1.1 they are the literal value "1" or "0" respectively.
SOAP 1.2 provides a new fault code DataEncodingUnknown.
The various namespaces defined by the two protocols are of course different.
SOAP 1.2 replaces the attribute env:actor with env:role but with essentially the same semantics.
SOAP 1.2 defines a new attribute, env:relay, for header blocks to indicate if unprocessed header blocks should be forwarded.
SOAP 1.2 defines two new roles, "none" and "ultimateReceiver", together with a more detailed processing model on how these behave.
SOAP 1.2 has removed the "dot" notation for fault codes, which are now simply an XML Qualified Name, where the namespace prefix is the SOAP envelope namespace.
SOAP 1.2 replaces "client" and "server" fault codes with "Sender" and "Receiver".
SOAP 1.2 uses the element names env:Code and env:Reason, respectively, for what used to be called faultcode and faultstring in SOAP 1.1. SOAP 1.2 also allows multiple env:Text child elements of env:Reason qualified by xml:lang to allow multiple language versions of the fault reason.
SOAP 1.2 provides a hierarchical structure for the mandatory SOAP env:Code sub-element in the env:Fault element, and introduces two new optional subelements, env:Node and env:Role.
SOAP 1.2 removes the distinction that was present in SOAP 1.1 between header and body faults as indicated by the presence of the env:Details element in env:Fault. In SOAP 1.2, the presence of the env:Details element has no significance as to which part of the fault SOAP message was processed.
SOAP 1.2 uses XML Base [XML Base] for determining a base URI for relative URI references whereas SOAP 1.1 is silent about the matter.
SOAP HTTP binding

In the SOAP 1.2 HTTP binding, the SOAPAction HTTP header defined in SOAP 1.1 has been removed, and a new HTTP status code 427 has been sought from IANA for indicating (at the discretion of the HTTP origin server) that its presence is required by the server application. The contents of the former SOAPAction HTTP header are now expressed as a value of an (optional) "action" parameter of the "application/soap+xml" media type that is signaled in the HTTP binding.
In the SOAP 1.2 HTTP binding, the Content-type header should be "application/soap+xml" instead of "text/xml" as in SOAP 1.1. The IETF registration for this new media type is [RFC 3902].
SOAP 1.2 provides a finer grained description of use of the various 2xx, 3xx, 4xx HTTP status codes.
Support of the HTTP extensions framework has been removed from SOAP 1.2.
SOAP 1.2 provides an additional message exchange pattern which may be used as a part of the HTTP binding that allows the use of HTTP GET for safe and idempotent information retrievals.
RPC

SOAP 1.2 provides a rpc:result element accessor for RPCs.
SOAP 1.2 provides several additional fault codes in the RPC namespace.
SOAP 1.2 offers guidance on a Web-friendly approach to defining RPCs where the procedure's purpose is purely "safe" informational retrieval.
SOAP encodings

An abstract data model based on a directed edge labeled graph has been formulated for SOAP 1.2. The SOAP 1.2 encodings are dependent on this data model. The SOAP RPC conventions are dependent on this data model, but have no dependencies on the SOAP encoding. Support of the SOAP 1.2 encodings and SOAP 1.2 RPC conventions are optional.
The syntax for the serialization of an array has been changed in SOAP 1.2 from that in SOAP 1.1.
The support provided in SOAP 1.1 for partially transmitted and sparse arrays is not available in SOAP 1.2.
SOAP 1.2 allows the inline (embedded) serialization of multiref values.
The href attribute in SOAP 1.1 (of type xs:anyURI) is called enc:ref in SOAP 1.2 and is of type IDREF.
In SOAP 1.2, omitted accessors of compound types are made equal to NILs.
SOAP 1.2 provides several fault sub-codes for indicating encoding errors.
Types on nodes are made optional in SOAP 1.2.
SOAP 1.2 has removed generic compound values from the SOAP Data Model.
SOAP 1.2 has added an optional attribute enc:nodeType to elements encoded using SOAP encoding that identifies its structure (i.e., a simple value, a struct or an array).
SOAP Part 1 Appendix A provides version management rules for a SOAP node that can support the version transition from [SOAP 1.1] to SOAP Version 1.2. In particular, in defines an env:Upgrade header block which can be used by a SOAP 1.2 node on receipt of a [SOAP 1.1] message to send a SOAP fault message to the originator to signal which version of SOAP it supports.
分享到:
评论

相关推荐

    nucth-1.2.part01 (该资源有10个包,共144M 完整nutch包 目录如下)

    Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降。 并且这很有可能进一步演变成为一个公司垄断了几乎所有的...

    commons-logging-1.1

    "commons-logging-1.1"是这个库的一个版本,它包含了一组API,使得应用程序能够以统一的方式处理日志记录,无论底层的日志系统是Log4j、Java内置的日志(java.util.logging)还是其他第三方日志库。 这个资源包...

    PyPI 官网下载 | kinto-changes-3.0.1.tar.gz

    《PyPI官网下载:kinto-changes-3.0.1.tar.gz——探索Python库与分布式系统》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了丰富的Python库,供全球开发者下载和使用。标题中的"PyPI 官网下载...

    mysql-connector-java-5.1.45-bin.jar

    MySQL Connector/J是MySQL数据库官方提供的Java驱动程序,用于在Java应用程序中与MySQL数据库进行通信。这个"mysql-connector-java-5.1.45-bin.jar"文件是该驱动的一个特定版本,即5.1.45版。这个版本是纯净且正版的...

    mysql-connector-java-8.0.28.tar.gz

    MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在MySQL数据库上执行SQL查询和操作。在这个"mysql-...

    mysql-connector-java-8.0.27.jar

    MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了JDBC(Java Database Connectivity)标准的驱动程序,允许Java开发者在Java应用中访问和操作MySQL数据库。`mysql-connector-java-8.0.27....

    mysql-connector-java-8.0.13.zip

    这个驱动程序也被称为`MySQL Connector/J`,是Java Database Connectivity (JDBC) 的实现,符合Java标准API,使得Java开发者可以方便地在Java应用中使用MySQL数据库。 `CHANGES` 文件通常记录了自上一版本以来的...

    开源项目-3zcurdia-changes-reporter.zip

    开源项目“3zcurdia-changes-reporter”是一个旨在帮助开发者自动从Git提交信息中生成变更日志的小型工具。这个项目的重点在于提高开发团队的工作效率,减少手动编写和整理变更日志的时间与精力,同时确保日志的准确...

    01-03-Depreciation-Changes.xls

    01-03-Depreciation-Changes.xls

    maven-googlecode-changes-plugin-1.0.jar

    maven-googlecode-changes-plugin-1.0.jar

    maven-googlecode-changes-plugin-1.0-sources.jar

    maven-googlecode-changes-plugin-1.0-sources.jar

    code-changes.zip

    code-changes.zip

    mysql-connector-java-8.0.24

    MySQL Connector/J 8.0.24 是MySQL数据库与Java应用程序之间的重要桥梁,它是一个用于连接Java应用程序到MySQL服务器的JDBC驱动程序。这个版本的发布旨在提供更高效、更稳定以及更安全的数据访问功能。以下是对这个...

    java数据库驱动:mysql-connector-java-5.1.zip

    Java数据库驱动程序,尤其是MySQL的连接器,是Java应用程序与MySQL数据库进行通信的关键组件。"mysql-connector-java-5.1.zip"是一个包含MySQL JDBC驱动的压缩包,版本为5.1.46,适用于Java开发环境。这个驱动程序...

    Atom-atom-unsaved-changes,在活动编辑器中显示未保存更改的atom包.zip

    Atom是一款由GitHub开发的开源文本编辑器,它利用了现代Web技术,如HTML、CSS和JavaScript,为开发者提供了一个高度可定制的平台。这个“Atom-atom-unsaved-changes”是一个专门为Atom编辑器设计的插件,其主要功能...

    svn-importer-1.2.zip

    【标题】"svn-importer-1.2.zip"是一个用于版本控制工具迁移的软件包,主要功能是将CVS(Concurrent Versions System)版本库的数据转换到Subversion(SVN)版本库。这个过程通常在组织或项目决定从CVS迁移到更现代...

    monitor-changes-of-file-list.zip_File Monitor_monitor file_文件变化监

    "monitor-changes-of-file-list.zip"这个压缩包文件似乎提供了一个工具或脚本来帮助用户监控文件目录的变化。下面我们将深入探讨文件监控的概念、应用场景以及实现方法。 文件监控,也称为文件变化监测或目录监测,...

    新版完整标准 BS ISO 23551-6-2021 - TC Tracked Changes Safety and contr

    新版完整标准 BS ISO 23551-6-2021 - TC Tracked Changes Safety and control devices for gas burners and.pdf

    前端开源库-changes-stream

    "changes-stream"是一个专为处理CouchDB更改事件流而设计的前端开源库。这个库的主要目的是帮助开发者更好地管理和响应CouchDB数据库中的实时更新。 CouchDB是一款基于文档的分布式数据库系统,它支持JSON格式的...

    mysql-connector-java-5.1.40.zip

    MySQL是世界上最受欢迎的开源数据库系统之一,而`mysql-connector-java-5.1.40.zip`是一个包含MySQL Java连接器的压缩包,用于在Java应用程序中与MySQL数据库进行交互。这个连接器允许Java开发者使用Java Database ...

Global site tag (gtag.js) - Google Analytics