Эта статья из IBM DeveloperWorks [ Какой стиль WSDL мне следует использовать? ] содержит отличное объяснение различий между этими стилями связывания. Короче говоря, единственными отличиями являются значения атрибута «style» привязки SOAP («rpc» или «document») в файле WSDL и способ определения аргументов сообщения и возвращаемых значений (и, следовательно, их отображения в Сами сообщения SOAP):
[ Обратите внимание на изменение порядка пунктов в вопросе, чтобы подчеркнуть отношения ]
- RPC / literal - Элемент сообщения WSDL определяет аргументы и возвращаемые значения операций.
- PROS: простой WSDL, имя операции отображается в сообщении SOAP, WS-I-совместимый.
- CONS: трудно проверить, поскольку аргументы определены в WSDL, а не в XSD.
- Document / literal - Части сообщения WSDL являются ссылками на элементы, определенные в XML-схеме.
- PROS: легко проверяется с XSD, WS-I-совместимым, но допускает поломку.
- CONS: сложный WSDL, сообщение SOAP не содержит имени операции.
- Завернутый документ / литерал (или «стиль упакованного документа») - Ввод сообщения WSDL имеет один входной и выходной параметры, а вход относится к элементу XSD с тем же локальным именем, что и операция WSDL.
- PROS: легко проверяется, сообщение SOAP содержит имя операции, соответствует WS-I.
- CONS: сложнейший WSDL (не официальный стиль, а соглашение).
По моему опыту, # 3 (Document / literal Wrapped) очень распространен в крупных корпоративных проектах, потому что он совместим как с Microsoft, так и с OSS, и хорошо подходит для нисходящей модели разработки (например, сначала WSDL / XSD, затем генерировать артефакты кода). Microsoft изобрела его [1] , и популярные инструменты Java / OSS ( Axis2 , JAX-WS ) поддерживают его явно.
Разница в "реальном мире", скорее всего, заключается в том, какие стили поддерживаются & mdash; и как хорошо & ndash; с помощью инструментов по вашему выбору.