Что означает утверждение WS-I BP2012? - PullRequest
2 голосов
/ 06 марта 2012

Может кто-нибудь объяснить, что это на самом деле означает?Пример был бы очень полезен.

WS-I: (BP2012) Привязка литерала документа содержит элементы soapbind: body, которые ссылаются на элементы части сообщения, которые не имеют атрибута элемента.

1 Ответ

8 голосов
/ 08 апреля 2012

Это сообщение относится к базовому профилю WS-I , который пытается уточнить подмножество WSDL и другие спецификации, которые обычно совместимы.

В этом случае BP2012 связан со следующим:

Обязательная ссылка на документ в ОПИСАНИИ ДОЛЖНА ссылаться в каждом из его wsoap12: элемент (ы) тела, только для wsdl: элемент (ы) части, которые были определяется с помощью атрибута элемента.

Как правило, вы увидите это, если одно из сообщений, используемых в вашем веб-сервисе, определено в терминах type вместо element, например:

<wsdl:message name="MyMessage">
    <wsdl:part name="MyPart" type="xsd:string"/>
</wsdl:message>

Чтобы исправить это, вам нужно изменить свое сообщение так, чтобы part определялся в терминах element, что-то вроде:

<wsdl:types>
    <xsd:schema targetNamespace="http://www.example.com/"
        xmlns:xsd="http://www.w3.org/1999/XMLSchema">
        <xsd:element name="MyElement" type="xsd:string"/>
    </xsd:schema>
</wsdl:types>

<wsdl:message name="MyMessage">
    <wsdl:part name="MyPart" element="tns:MyElement" xmlns:tns="http://www.example.com/"/>
</wsdl:message>

Кроме того, вы можете переключить веб-службу с использования привязки document/literal на привязку rpc/literal. С привязкой rpc/literal детали определяются в терминах type вместо element.

...