Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как Windows Communication Foundation (WCF) сопоставляет документы языка описания веб-служб (WSDL) с экземплярами ServiceDescription и наоборот.
Как ServiceDescription отображается на WSDL 1.1
Вы можете использовать WCF для экспорта документов WSDL из экземпляра вашей службы ServiceDescription. Документы WSDL автоматически создаются для вашей службы при публикации конечных точек метаданных.
Можно также импортировать ServiceEndpoint экземпляры, ContractDescription экземпляры и Binding экземпляры из документов WSDL, используя тип WsdlImporter
.
Документы WSDL, экспортированные WCF, импортируют все определения схемы XML, используемые из внешних документов схемы XML. Отдельный документ схемы XML экспортируется для каждого целевого пространства имен типов данных, используемых в службе. Аналогичным образом отдельный документ WSDL экспортируется для каждого целевого пространства имен, используемого контрактами службы.
ОписаниеУслуги
Экземпляр ServiceDescription сопоставляется с элементом wsdl:service
. Экземпляр ServiceDescription содержит коллекцию экземпляров ServiceEndpoint, каждый из которых сопоставляется с отдельными элементами wsdl:port
.
Свойства | Сопоставление WSDL |
---|---|
Name |
Значение wsdl:service /@name для службы. |
Namespace |
Целевое пространство имен для wsdl:service определения службы. |
Endpoints |
Определения wsdl:port для сервиса. |
ServiceEndpoint
Экземпляр ServiceEndpoint сопоставляется с элементом wsdl:port
.
ServiceEndpoint Экземпляр содержит адрес, привязку и контракт.
Поведение конечных точек, которое реализует интерфейс IWsdlExportExtension, может изменить элемент wsdl:port
для конечной точки, к которой оно прикреплено.
Свойства | Сопоставление WSDL |
---|---|
Name |
Значение wsdl:port /@name для конечной точки и значение wsdl:binding /@name для привязки конечной точки. |
Address |
Адрес wsdl:port определения конечной точки.Транспорт конечной точки определяет формат адреса. Например, для транспорта, поддерживаемого WCF, это может быть адрес SOAP или ссылка на конечную точку. |
Binding |
Определение конечной точки wsdl:binding .В отличие от wsdl:binding определений, привязки в WCF не привязаны к одному контракту. |
Contract |
Определение конечной точки wsdl:portType . |
Behaviors |
Поведение конечных точек, реализующее интерфейс IWsdlExportExtension, может изменить параметры конечной точки wsdl:port . |
Привязки
Экземпляр привязки для экземпляра ServiceEndpoint
сопоставляется с определением wsdl:binding
. В отличие от wsdl:binding
определений, которые должны быть связаны с определенным wsdl:portType
определением, привязки WCF не зависят от любого контракта.
Привязка состоит из коллекции элементов привязки. Каждый элемент описывает некоторые аспекты взаимодействия конечной точки с клиентами. Кроме того, привязка содержит MessageVersion, который указывает на EnvelopeVersion и AddressingVersion для конечной точки.
Свойства | Сопоставление WSDL |
---|---|
Name |
Используется в имени конечной точки по умолчанию, представляющем собой имя привязки с добавленным через символ подчеркивания именем контракта. |
Namespace |
targetNamespace для wsdl:binding определения.При импорте, если политика прикреплена к порту WSDL, импортированное пространство имен привязки сопоставляется с targetNamespace в определении wsdl:port . |
BindingElementCollection , как возвращено методом CreateBindingElements () |
Различные расширения определения wsdl:binding для конкретного домена, обычно в виде утверждений политики. |
MessageVersion |
EnvelopeVersion и AddressingVersion для конечной точки.Когда MessageVersion.None указано, привязка WSDL не включает привязку SOAP, а порт WSDL не содержит содержимого WS-Addressing. Этот параметр обычно используется для обычных старых конечных точек XML (POX). |
Элементы привязки
Элементы для привязки конечной точки сопоставляются с различными расширениями WSDL в wsdl:binding
, например, утверждения политики.
Привязка TransportBindingElement определяет универсальный идентификатор ресурса транспорта (URI) для привязки SOAP.
Адресация
Привязка AddressingVersion
сопоставляется с версией адресации, используемой в wsd:port
. WCF поддерживает адреса SOAP 1.1 и SOAP 1.2 и ссылки на конечные точки WS-Addressing 08/2004 и WS-Addressing 1.0.
КонвертВерсия
Привязка EnvelopeVersion
сопоставляется с версией SOAP, используемой в wsdl:binding
. WCF поддерживает привязки SOAP 1.1 и SOAP 1.2.
Контракты
Экземпляр ContractDescription для экземпляра ServiceEndpoint
сопоставляется с wsdl:portType
. Экземпляр ContractDescription
описывает все операции для заданного контракта.
Свойства | Сопоставление WSDL |
---|---|
Name |
Значение wsdl:portType /@name для контракта. |
Namespace |
Целевое пространство имен для wsdl:portType . |
SessionMode |
Значение wsdl:portType /@msc:usingSession для контракта. Этот атрибут является расширением WCF для WSDL 1.1. |
Operations |
Определения wsdl:operation контракта. |
Операции
Экземпляр OperationDescription сопоставляется с wsdl:portType
/wsdl:operation
. Объект OperationDescription
содержит коллекцию MessageDescription
экземпляров, которые описывают сообщения операции.
В значительной степени в то, как OperationDescription
сопоставляется с документом WSDL, вовлечены два типа поведения операций: DataContractSerializerOperationBehavior
и XmlSerializerOperationBehavior
.
Свойства | Сопоставление WSDL |
---|---|
Name |
Значение wsdl:portType /wsdl:operation /@name для операции. |
ProtectionLevel |
Утверждения защиты в политике безопасности, присоединенной к wsdl:binding/wsdl:operation сообщениям этой операции. |
IsInitiating |
Значение wsdl:portType /wsdl:operation /@msc:isInitiating для операции. Этот атрибут является расширением WCF для WSDL 1.1. |
IsTerminating |
Значение wsdl:portType /wsdl:operation /@msc:isTerminating для операции. Этот атрибут является расширением WCF для WSDL 1.1. |
Messages |
wsdl:portType
/
wsdl:operation
/
wsdl:input и wsdl:portType /wsdl:operation /wsdl:output сообщения для операции. |
Faults |
Определения wsdl:portType /wsdl:operation /wsdl:fault для операции. |
Behaviors |
DataContractSerializerOperationBehavior и XmlSerializerOperationBehavior занимаются привязкой операций и сообщениями об операциях. |
Поведение операции DataContractSerializerOperationBehavior
Операция DataContractSerializerOperationBehavior
— это реализация IWsdlExportExtension
, которая экспортирует сообщения WSDL и привязки для данной операции. Типы схемы XML экспортируются с помощью .XsdDataContractExporter
Он DataContractSerializerOperationBehavior
также определяет использование, стиль и экспортер схем и импорт, которые будут использоваться для этой операции.
Свойства | Сопоставление WSDL |
---|---|
DataContractFormatAttribute |
Свойство Style этого атрибута сопоставляется со значением wsdl:binding /wsdl:operation /soap:operation /@style для операции.Поддерживается только буквальное использование DataContractSerializerOperationBehavior типов схемы в WSDL. |
XmlSerializerOperationBehavior (Поведение операции сериализатора XML)
Операция XmlSerializerOperationBehavior
— это реализация IWsdlExportExtension
, которая экспортирует сообщения WSDL и привязки для данной операции. Типы схемы XML экспортируются с помощью .XmlSchemaExporter
Он XmlSerializerOperationBehavior
также определяет использование, стиль и экспортер схем и импорт, которые будут использоваться для этой операции.
Свойства | Сопоставление WSDL |
---|---|
XmlSerializerFormatAttribute |
Свойство Style этого атрибута сопоставляется со значением wsdl:binding /wsdl:operation /soap:operation /@style для операции.Свойство Use этого атрибута сопоставляется с wsdl:binding /wsdl:operation /soap:operation значениями /*/@use для всех сообщений в операции. |
Сообщения
Экземпляр MessageDescription
сопоставляется с wsdl:message
, на который ссылается wsdl:portType
/wsdl:operation
/wsdl:input
или wsdl:portType
/wsdl:operation
/wsdl:output
сообщение в операции. У MessageDescription
есть тело и заголовки.
Свойства | Сопоставление WSDL |
---|---|
Action |
Действие SOAP или WS-Addressing для сообщения. Обратите внимание, что операции, использующие строку действия "*", не представлены в WSDL. |
Direction |
MessageDirection.Input соответствует wsdl:input .MessageDirection.Output соответствует wsdl:output . |
ProtectionLevel |
Утверждения защиты в политике безопасности, приложенной к определению wsdl:message этого сообщения. |
Body |
Основной текст сообщения. |
Headers |
Заголовки сообщения. |
ContractDescription.Name , OperationContract.Name |
При экспорте используется для извлечения значения wsdl:message /@name. |
Текст сообщения
Экземпляр MessageBodyDescription
сопоставляется с определениями wsdl:message
/wsdl:part
тела сообщения. Тело сообщения может содержать оболочку или быть без нее.
Свойства | Сопоставление WSDL |
---|---|
WrapperName |
Если стиль не является RPC, то WrapperName сопоставляется с именем элемента, на который ссылается wsdl:message /wsdl:part , при этом значение @name установлено на "параметры". |
WrapperNamespace |
Если стиль не RPC, то WrapperNamespace сопоставляется с пространством имен элемента для wsdl:message /wsdl:part с установленным значением @name "parameters". |
Parts |
Части сообщения для этого текста сообщения. |
ReturnValue |
Дочерний элемент элемента оболочки, если элемент-оболочка существует (стиль оболочки документа или стиль RPC), в противном случае первый wsdl:message /wsdl:part в сообщении. |
Части сообщения
Экземпляр MessagePartDescription
сопоставляется с wsdl:message
/wsdl:part
, соответствующим типу или элементу схемы XML, на который указывает часть сообщения.
Свойства | Сопоставление WSDL |
---|---|
Name |
Значение wsd:message /wsdl:part /@name для части сообщения и имя элемента, на который указывает часть сообщения. |
Namespace |
Пространство имен элемента, на который указывает часть сообщения. |
Index |
Индекс wsdl:message /wsdl:part сообщения. |
ProtectionLevel |
Утверждения защиты в политике безопасности, прикрепленной к определению wsdl:message для этой части сообщения. Политика параметризована, чтобы указать на определенную часть сообщения. |
MessageType |
Тип СХЕМЫ XML элемента, на который указывает часть сообщения. |
Заголовки сообщения
Экземпляр MessageHeaderDescription
— это часть сообщения, которая сопоставляется с привязкой soap:header
для этой части сообщения.
Ошибки
Экземпляр FaultDescription
сопоставляется с определением wsdl:portType
/wsdl:operation
/wsdl:fault
и соответствующим wsdl:message
определением. Он wsdl:message
добавляется в то же целевое пространство имен, что и связанный с ним тип порта WSDL.
wsdl:message
имеет одну часть сообщения с именем "detail", которая указывает на элемент схемы XML, соответствующий значению свойства DefaultType
для экземпляра FaultDescription
.
Свойства | Сопоставление WSDL |
---|---|
Name |
Значение wsdl:portType /wsdl:operation /wsdl:fault /@name для сбоя. |
Namespace |
Пространство имен элемента схемы XML, на которое ссылается часть сообщения об ошибке. |
Action |
Действие SOAP или WS-Addressing для сбоя. |
ProtectionLevel |
Утверждения защиты в политике безопасности, присоединенной wsdl:message к определению этой ошибки. |
DetailType |
Тип XML-схемы элемента, на который указывает часть подробного сообщения. |
Name, ContractDescription.Name, OperationDescription.Name, |
Используется для получения значения wsdl:message /@name для сообщения об ошибке. |