6.1 Vispārīgs WSDL koda ģenerācijas soļu apraksts

Contract-First koda ģenerācijas scenārijs ir šāds:
  1. No dotām xml shēmām, kas specificē tīmekļa pakalpes operāciju ieejas un izejas parametru tipus, (t.i. no kontrakta xsd) uzģenerē wsdl;
  2. Uzģenerētajā wsdl dokumentā, ja vajadzīgs, veic dažas nepieciešamā manuālas labošanas;
  3. No wsdl dokumenta ģenerē servera c# kodu - klašu definīcijas xsd tipiem un interfeisa definīcija wsdl operācijām;
  4. Implementē noģenerētās interfeisa operācijas;
  5. Veic izmaiņas tīmekļa pakalpes web.config datnē, lai norādītu, ka wsdl nevajag automātiski ģenerēt no c# koda, bet paņemt jau noģenerēto;
  6. Konfigurē MS Visual Studio projektu, lai publicējot pakalpi uzservera (caur Setup projektu), tiktu publicēti arī wsdl un saistītie xsd faili.

Piemērs:

Koda ģenerēšanas soļi tiks parādīti uz Submission tīmekļa pakalpes piemēra.

Ja shēmā ir nodefinēt 2 tipi, kam vārda prefiksi sakrīt, bet kas tālāk atšķiras tikai ar turpinājumu "Request" vai "Response" (XXXRequest..., XXXResponse...), tad var secināt, ka jābūt operācijai XXX, kam ieejas parametrs ir ar tipu XXXRequest... un izejas parametrs ar tipu XXXResponse.... Piemēram, zemāk dotais xsd fragments specificē operāciju GetSubmission ar ieejas/izejas parametriem ar tipiem attiecīgi GetSubmissionRequestStructure un GetSubmissionResponseStructure

<xs:complexType name="GetSubmissionRequestStructure">
         <xs:sequence>
                 <xs:element name="SubmissionId" type="ekons2:SubmissionIdType">
                 </xs:element>
         </xs:sequence>
</xs:complexType>
<xs:complexType name="GetSubmissionResponseStructure">
         <xs:sequence>
                 <xs:element name="SubmissionDetails" type="ekons2:SubmissionDetailsStructure">
                 </xs:element>
                 <xs:element name="ResponseErrorList" type="ivis:ErrorListStructure" minOccurs="0">
                 </xs:element>
         </xs:sequence>
</xs:complexType>

Šādu automātisku operāciju izsecināšanu veic WSCF.blue rīks.