XML -zelfstudie

XML HOME XML-introductie XML Hoe te gebruiken XML-structuur XML-syntaxis XML-elementen XML-kenmerken XML-naamruimten XML-weergave XML HTTP-verzoek XML-parser XML-DOM XML XPath XML XSLT XML XQuery XML XLink XML-validator XML-DTD XML Schema XML-server XML-voorbeelden XML-quiz XML-certificaat

XML AJAX

Ajax-introductie AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

XML-DOM

DOM-introductie DOM-knooppunten DOM-toegang DOM Node Info Lijst met DOM-knooppunten DOM doorkruisen DOM-navigatie DOM Waarden ophalen DOM-wijzigingsknooppunten DOM Knooppunten verwijderen DOM Knooppunten vervangen DOM Knooppunten maken DOM Knooppunten toevoegen DOM-kloonknooppunten DOM-voorbeelden

XPath- zelfstudie

XPath-introductie XPath-knooppunten XPath-syntaxis XPath-assen XPath-operators XPath-voorbeelden

XSLT- zelfstudie

XSLT-introductie XSL-talen XSLT-transformatie XSLT <sjabloon> XSLT <waarde-van> XSLT <voor elk> XSLT <sorteren> XSLT <if> XSLT <kiezen> XSLT toepassen XSLT op de client XSLT op de server XSLT Bewerk XML XSLT-voorbeelden

XQuery- zelfstudie

XQuery-introductie XQuery-voorbeeld XQuery FLWOR XQuery HTML XQuery-voorwaarden XQuery-syntaxis XQuery toevoegen XQuery selecteren XQuery-functies

XML -DTD

DTD Introductie DTD-bouwstenen DTD-elementen DTD-kenmerken DTD Elements vs Attr DTD-entiteiten DTD-voorbeelden

XSD- schema

XSD-introductie XSD Hoe kan ik? XSD <schema> XSD-elementen XSD-kenmerken XSD-beperkingen

XSD- complex

XSD-elementen XSD Leeg Alleen XSD-elementen Alleen XSD-tekst XSD gemengd XSD-indicatoren XSD <elke> XSD <anyAttribute> XSD-vervanging XSD-voorbeeld

XSD- gegevens

XSD-string XSD-datum XSD Numeriek XSD Diversen XSD-referentie

Webservices _

XML-services XML-WSDL XML SOAP XML-RDF XML-RSS

Referenties

Typen DOM-knooppunten DOM Node DOM-knooppuntlijst DOM NamedNodeMap DOM-document DOM-element DOM-kenmerk DOM-tekst DOM CDATA DOM-opmerking DOM XMLHttpRequest DOM-parser XSLT-elementen XSLT/XPath-functies

XML -WSDL


  • WSDL staat voor Web Services Description Language
  • WSDL wordt gebruikt om webservices te beschrijven
  • WSDL is geschreven in XML
  • WSDL is een W3C-aanbeveling van 26 juni 2007

WSDL-documenten

Een WSDL-document beschrijft een webservice. Het specificeert de locatie van de service en de methoden van de service, met behulp van deze belangrijke elementen:

Element Description
<types> Defines the (XML Schema) data types used by the web service
<message> Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding> Defines the protocol and data format for each port type

De hoofdstructuur van een WSDL-document ziet er als volgt uit:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>


WSDL-voorbeeld

Dit is een vereenvoudigde fractie van een WSDL-document:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

In dit voorbeeld definieert het element <portType> "glossaryTerms" als de naam van een poort en "getTerm" als de naam van een bewerking .

De bewerking "getTerm" heeft een invoerbericht met de naam "getTermRequest" en een uitvoerbericht met de naam "getTermResponse".

De <message> -elementen definiëren de onderdelen van elk bericht en de bijbehorende datatypes.


Het <portType>-element

Het element <portType> definieert een webservice , de bewerkingen die kunnen worden uitgevoerd en de berichten die erbij betrokken zijn.

Het verzoek-antwoordtype is het meest voorkomende bewerkingstype, maar WSDL definieert vier typen:

Type Definition
One-way The operation can receive a message but will not return a response
Request-response The operation can receive a request and will return a response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a response

WSDL Eenrichtingsbediening

Een voorbeeld van eenrichtingsverkeer:

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

In het bovenstaande voorbeeld definieert het portType "glossaryTerms" een eenrichtingsbewerking met de naam "setTerm".

Met de bewerking "setTerm" kunnen nieuwe woordenlijsttermen worden ingevoerd met behulp van een "newTermValues"-bericht met de invoerparameters "term" en "value". Er is echter geen uitvoer gedefinieerd voor de bewerking.


WSDL-verzoek-antwoordbewerking

Een voorbeeld van een verzoek-antwoordbewerking:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

In het bovenstaande voorbeeld definieert het portType "glossaryTerms" een verzoek-antwoordbewerking met de naam "getTerm".

De bewerking "getTerm" vereist een invoerbericht met de naam "getTermRequest" met een parameter met de naam "term", en retourneert een uitvoerbericht met de naam "getTermResponse" met een parameter met de naam "value".


WSDL Binding aan SOAP

WSDL-bindingen definieert de berichtindeling en protocoldetails voor een webservice.

Een voorbeeld van een verzoek-antwoordbewerking:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

Het bindingselement heeft twee attributen: naam en type.

Het name-attribuut (u kunt elke gewenste naam gebruiken) definieert de naam van de binding, en het type-attribuut verwijst naar de poort voor de binding, in dit geval de "glossaryTerms"-poort.

Het soap:bindende element heeft twee kenmerken: stijl en transport.

Het stijlkenmerk kan "rpc" of "document" zijn. In dit geval gebruiken we document. Het transportattribuut definieert het te gebruiken SOAP-protocol. In dit geval gebruiken we HTTP.

Het bewerkingselement definieert elke bewerking die het portType blootlegt.

Voor elke operatie moet de bijbehorende SOAP-actie worden gedefinieerd. U moet ook specificeren hoe de invoer en uitvoer worden gecodeerd. In dit geval gebruiken we "letterlijk".