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:
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)
Nasledujúca schéma definuje štruktúru správ pre operácie
kde trieda Jedlo má dátové členy
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="p3.asos" xmlns:tns="p3.asos" elementFormDefault="qualified"> <xsd:complexType name="Jedlo"> <xsd:sequence> <xsd:element name="nazov" type="xsd:string"></xsd:element> <xsd:element name="cena" type="xsd:double"></xsd:element> <xsd:element name="kalorie" type="xsd:double" minOccurs="0" maxOccurs="1"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="info-in" type="xsd:string"></xsd:element> <xsd:element name="info-out" type="tns:Jedlo"></xsd:element> <xsd:element name="pridaj-in" type="tns:Jedlo"></xsd:element> </xsd:schema> |
Pozn. Všimnite si v oboch dokumentoch kde všade sa reťazec p3.asos (cieľový menný priestor schémy) nachádza.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?xml version="1.0" encoding="UTF-8"?> <definitions name="JedloWSDL" targetNamespace="http://j2ee.netbeans.org/wsdl/xmlprojekt/src/JedloWSDL" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://j2ee.netbeans.org/wsdl/xmlprojekt/src/JedloWSDL" xmlns:ns="p3.asos" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <types> <xsd:schema targetNamespace="http://j2ee.netbeans.org/wsdl/xmlprojekt/src/JedloWSDL"> <xsd:import namespace="p3.asos" schemaLocation="JedloSchema.xsd"/> </xsd:schema> </types> <message name="pridajRequest"> <part name="part1" element="ns:pridaj-in"/> </message> <message name="infoRequest"> <part name="part1" element="ns:info-in"/> </message> <message name="infoResponse"> <part name="part1" element="ns:info-out"/> </message> <portType name="JedloWSDLPortType"> <operation name="info"> <input name="input1" message="tns:infoRequest"/> <output name="output1" message="tns:infoResponse"/> </operation> <operation name="pridaj"> <input name="input1" message="tns:pridajRequest"/> </operation> </portType> <binding name="JedloWSDLBinding" type="tns:JedloWSDLPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="info"> <soap:operation/> <input name="input1"> <soap:body use="literal"/> </input> <output name="output1"> <soap:body use="literal"/> </output> </operation> <operation name="pridaj"> <soap:operation/> <input name="input1"> <soap:body use="literal"/> </input> </operation> </binding> <service name="JedloWSDLService"> <port name="JedloWSDLPort" binding="tns:JedloWSDLBinding"> <soap:address location="http://localhost:${HttpDefaultPort}/JedloWSDLService/JedloWSDLPort"/> </port> </service> </definitions> |
Nasledujúca schéma definuje štruktúru správ pre operáciu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="p3.asos" xmlns:tns="p3.asos" elementFormDefault="qualified"> <xsd:element name="vytvor"> <xsd:complexType> <xsd:sequence> <xsd:element name="nazov" type="xsd:string"></xsd:element> <xsd:element name="cena" type="xsd:double"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="vytvor-out"> <xsd:complexType> <xsd:sequence> <xsd:element name="return" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> |
Dôležité: Všimnite si, že
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<message name="vytvorRequest"> <part name="part1" element="ns:vytvor"/> </message> <message name="vytvorResponse"> <part name="part1" element="ns:vytvor-out"/> </message> <portType name="JedloWSDL2PortType"> <operation name="vytvor"> <input name="input1" message="tns:vytvorRequest"/> <output name="output1" message="tns:vytvorResponse"/> </operation> </portType> <binding name="JedloWSDL2Binding" type="tns:JedloWSDL2PortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="vytvor"> <soap:operation/> <input name="input1"> <soap:body use="literal"/> </input> <output name="output1"> <soap:body use="literal"/> </output> </operation> </binding> |
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:
Nasledujúca xml-schéma definuje správy pre túto operáciu.
Všimnite si tiež, ako je definovaná štruktúra vstupnej správy element ponuka, pre operáciu, ktorá nemá žiadne vstupné argumenty.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xml.netbeans.org/schema/prvaSchema" xmlns:tns="http://xml.netbeans.org/schema/prvaSchema" elementFormDefault="qualified"> <xsd:complexType name="Jedlo"> <xsd:sequence> <xsd:element name="nazov" type="xsd:string"></xsd:element> <xsd:element name="cena" type="xsd:double"></xsd:element> <xsd:element name="kalorie" type="xsd:double" minOccurs="0" maxOccurs="1"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Menu"> <xsd:sequence> <xsd:element name="datum" type="xsd:date"></xsd:element> <xsd:element name="jedlo" type="tns:Jedlo" maxOccurs="unbounded"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="ponukaResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="return" type="tns:Menu"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ponuka"> <xsd:complexType> <xsd:sequence/> </xsd:complexType> </xsd:element> </xsd:schema> |
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.