I-ASOS Prednáška 3

Prednáška 3. Contract-first pokračovanie

Príklad 1. Vytvorenie wsdl-dokumentu s viacerými operáciami

Netbeans plugin vygeneruje len wdsl-dokument s jednou operáciou.

Ďalšie operácie treba pridať do wsdl-dokumentu manuálne, t.j. doplniť wsdl-elementy:

  • portType – obshuje názov operácie a referencie na jej vstupné a výstupné správy
  • binding – popisuje spôsob serializácie vstupov a výstupov do XML
  • message – priraďuje správe xml-element.

Definiciu xml-elementov treba doplniť do xml-schémy.

  • Pozor! Každé operácia musí mať vlastné elementy pre svoje správy. (Dve operacie nesmú použiť rovnaký element aj keby mali rovnakú štruktúru/typ)

Príklad 2. Operácia s objektom ako návratovou hodnotou / parametrom

Nasledujúca schéma definuje štruktúru správ pre operácie

  • Jedlo info(String nazov)
  • void pridaj(Jedlo arg)

kde trieda Jedlo má dátové členy

  • String nazov
  • double cena
  • Double kalorie – nepovinný

    Pozn. Pri vytváraní schémy je možné zadať target-namespace. Zadali sme p3.asos, vďaka čomu budú vygenerované dátové triedy umiestnené v balíku asos.p3.

  • WSDL-dokument s definíciou horeuvedených operácií.

    Pozn. Všimnite si v oboch dokumentoch kde všade sa reťazec p3.asos (cieľový menný priestor schémy) nachádza.

Príklad 3. Operácia s viacerymi parametrami

Nasledujúca schéma definuje štruktúru správ pre operáciu

  • String vytvor(String nazov, double cena)

Dôležité: Všimnite si, že

  • štruktura elementu pre vstupnú správu je definovaná ako komplexný typ – sekvencia elementov pre jednotlive argumenty operácie.
  • meno elementu vstupnej správy musí byť rovnaké ako meno operácie.

  • štruktura elementu návratovú správu (ak nie je operácia jednosmerná), musí byť v schéme definovaná tiež ako ako komplexný typ – sekvencia s jediným elementom, ktorý sa volá return

Inak by vygenerovaná operácia mala len jeden argument – objekt wrapujúci argumenty.

Časti wsdl-dokumentu pre operáciu vytvor.

Príklad 4. Dátová trieda s viacnásobnymi dátovymi členmi – kompozícia

Nech Menu ponuka() je operácia, ktorá vracia kompletnú pounku jedál na konkrétny deň. Štruktúra Menu je znázornená na UML diagrame tried:

  • Predmety/I-ASOS/P3/p3-menu.png

Nasledujúca xml-schéma definuje správy pre túto operáciu.

  • Názov triedy návratovej hodnoty je odvodený od názvu komplexného typu.
  • Všimnite si tiež, ako je definovaná štruktúra vstupnej správy element ponuka, pre operáciu, ktorá nemá žiadne vstupné argumenty.