Das Schema für die XML-Nachrichten, die von der Provideranwendung erwartet werden, ist als Basis für die Anforderungselemente der als Serviceschnittstelle verwendeten WSDL-Datei erforderlich.
Die Provideranwendung kann zum Beispiel Nachrichten mit einer Aktion erwarten, wobei die Nachrichten das Element enthalten, an dem die Aktion ausgeführt werden soll. Das folgende Beispiel enthält eine Aktion (SaveItem), die die Serviceoperation darstellt:
<?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://ServiceFacade_RR" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://ServiceFacade_RR"> <complexType name="Item"> <sequence> <element name="Name" type="string"></element> <element name="Code" type="string"></element> <element name="Description" type="string"></element> <element name="Location" type="string"></element> </sequence> </complexType> <element name="SaveItem" type="tns:SaveItem"></element> <complexType name="SaveItem"> <sequence> <element name="Item" type="tns:Item"></element> </sequence> </complexType> </schema>
Die zugehörige WSDL muss eine Eingabenachricht mit einem Element definieren, das dem Element der höchsten Ebene, das vom Providerschema verlangt wird, entspricht. Das folgende Codefragment entspricht dem vorangegangenen Providerschema:
<wsdl:message name="SaveItemRequestMsg"> <wsdl:part name="SaveItemRequest" element="tns:SaveItem"></wsdl:part> </wsdl:message>
So sieht das Schema für die Empfangsbestätigung aus (mit musterspezifischen Namensbereichen):
<?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="<instance specific>" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://<instance specific>" "> <complexType name="Ack"> <sequence> <element name="acknowledgment" type="string"></element> </sequence> </complexType> <element name="Response" type="tns:Ack"> </element> </schema>
Der WSDL-Eintrag, der die Antwortnachricht definiert, muss folgende Antwort referenzieren:
<wsdl:message name="SaveItemResponseMsg"> <wsdl:part name="Response" element="tns:Response"></wsdl:part> </wsdl:message>