| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15685 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.soap.wsdl">
- <title>WSDL Zugriffsmethoden</title>
- <note>
- <para>
- Die <classname>Zend_Soap_Wsdl</classname> Klasse wird von der Zend_Soap_Server
- Komponente intern verwendet um mit WSDL Dokumenten zu arbeiten. Trotzdem könnte man die
- Funktionalität die von dieser Klasse angeboten wird auch für eigene Zwecke verwendet
- werden. Das Zend_Soap_Wsdl Paket enthält sowohl einen Parser als auch einen Ersteller
- für WSDL Dokumente.
- </para>
- <para>
- Wenn man nicht plant das zu tun, kann dieses Kapitel der Dokumentation übersprungen
- werden.
- </para>
- </note>
- <sect2 id="zend.soap.wsdl.constructor">
- <title>Zend_Soap_Wsdl Konstruktor</title>
- <para>
- Der <classname>Zend_Soap_Wsdl</classname> Konstruktor nimmt drei Parameter:
- <orderedlist>
- <listitem>
- <simpara>
- <code>$name</code> - Name des Web Services der beschrieben wird.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <code>$uri</code> - URI wo das WSDL vorhanden sein wird (könnte auch eine
- Referenz zu einer Datei auf dem Dateisystem sein.)
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <code>$strategy</code> - Optionales Flag das verwendet wird um die
- Strategie für die Erkennung von komplexen Typen (Objekte) zu identifizieren.
- Das war vor der Version 1.7 ein boolscher <code>$extractComplexTypes</code>
- und kann aus Gründen der Rückwärtskompatibilität noch immer als Boolean
- gesetzt werden. Standardmäßig ist das Erkennungsverhalten von 1.6 gesetzt.
- Um mit Strategien für komplexe Typenerkennung weiterzumachen lesen wie
- weiter im Kapitel: <xref linkend="zend.soap.wsdl.types.add_complex" />.
- </simpara>
- </listitem>
- </orderedlist>
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.addmessage">
- <title>Die addMessage() Methode</title>
- <para>
- Die <code>addMessage($name, $parts)</code> Methode fügt eine neue Nachrichten
- Beschreibung zu einem WSDL Dokumetn hinzu (/definitions/message Element).
- </para>
- <para>
- Jede Nachricht korrespondiert zu einer Methode im Sinne von
- <classname>Zend_Soap_Server</classname> und <classname>Zend_Soap_Client</classname>
- Funktionalität.
- </para>
- <para>
- Der <code>$name</code> Parameter repräsentiert den Namen der Nachricht.
- </para>
- <para>
- Der <code>$parts</code> Parameter ist ein Array von Nachrichten Teilen welche SOAP Aufruf
- Parameter beschreiben. Es ist ein assoziatives Array:
- 'part name' (SOAP Aufruf Parameter Name) => 'part type'.
- </para>
- <para>
- Das Typ Mapping Management wird durchgeführt indem die <code>addTypes()</code>,
- <code>addTypes()</code> und <code>addComplexType()</code> Methoden ausgeführt werden
- (siehe anbei).
- </para>
- <note>
- <para>
- Nachrichten Teile können entweder 'element' oder 'type' Attribute für das typisieren
- verwenden (siehe <ulink url="http://www.w3.org/TR/wsdl#_messages"/>).
- </para>
- <para>
- 'element' Attribute müssen zu einem entsprechenden Element von Daten Typ Definition
- referieren. 'type' zu einem entsprechenden complexType Eintrag.
- </para>
- <para>
- Alle standardmäßigen XSD Typen haben beide 'element' und 'complexType' Definitionen
- (siehe <ulink url="http://schemas.xmlsoap.org/soap/encoding/"/>).
- </para>
- <para>
- Alle nicht-standardmäßigen Typen, welche hinzugefügt werden können durch verwenden
- der <classname>Zend_Soap_Wsdl::addComplexType()</classname> Methode, sind
- beschrieben durch Verwendung des 'complexType' Nodes des
- '/definitions/types/schema/' Abschnitts des WSDL Dokuments.
- </para>
- <para>
- <code>addMessage()</code> Methoden verwenden also immer das 'type' Attribut um Typen
- zu beschreiben.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_port_type">
- <title>Die addPortType() Methode</title>
- <para>
- Die <code>addPortType($name)</code> Methode fügt neue Port Typen zu einem WSDL Dokument
- (/definitions/portType) mit dem spezifizierten Port Typ Namen hinzu.
- </para>
- <para>
- Es verbindet ein Set von Web Service Methoden die im Sinne der Zend_Soap_Server
- Implementation definiert sind.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_porttypes"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_port_operation">
- <title>Die addPortOperation() Methode</title>
- <para>
- Die <code>addPortOperation($portType, $name, $input = false, $output = false, $fault =
- false)</code> Methode fügt eine neue Port Operation zum spezifizierten Port Typ des WSDL
- Dokuments hinzu (/definitions/portType/operation).
- </para>
- <para>
- Jede Port Operation korrespondiert zu einer Methode der Klasse (wenn der Web Service auf
- einer Klasse basiert) oder Funktion (wenn der Web Service auf einem Set von Methoden
- basiert) im Sinne der Zend_Soap_Server Implementation.
- </para>
- <para>
- Sie fügt auch eine korrespondierende Port Operations Nachricht hinzu anhängig von den
- spezifizierten <code>$input</code>, <code>$output</code> und <code>$fault</code>
- Parametern.
- <note>
- <para>
- Die Zend_Soap_Server Komponente erzeugt zwei Nachrichten für jede Port Operation
- wärend das Service das auf der <classname>Zend_Soap_Server</classname> Klasse
- basiert beschrieben wird:
- <itemizedlist>
- <listitem>
- <para>
- Eine Eingabe Nachricht mit dem Namen <code>$methodName .
- 'Request'</code>.
- </para>
- </listitem>
- <listitem>
- <para>
- Eine Ausgabe Nachricht mit dem Namen <code>$methodName .
- 'Response'</code>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </note>
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_request-response"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_binding">
- <title>Die addBinding() Methode</title>
- <para>
- Die <code>addBinding($name, $portType)</code> Methode fügt neue Bindungen in das WSDL
- Dokument ein (/definitions/binding).
- </para>
- <para>
- Der 'binding' WSDL Dokument Knoten definiert das Nachrichtenformat und Protokolldetails
- für Operationen und Nachrichten die von einem speziellen portType definiert sind
- (siehe <ulink url="http://www.w3.org/TR/wsdl#_bindings"/>).
- </para>
- <para>
- Die Methode erzeugt einen Bindungsknoten und gibt diesen zurück. Dieser kann dann
- verwendet werden um mit aktuellen Daten gefüllt zu werden.
- </para>
- <para>
- Die Zend_Soap_Server Implementation verwendet den <code>$serviceName . 'Binding'</code>
- Namen für das 'binding' Element eines WSDL Dokuments.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_binding_operation">
- <title>Die addBindingOperation() Methode</title>
- <para>
- Die <code>addBindingOperation($binding, $name, $input = false, $output = false, $fault =
- false)</code> Methode fügt eine Operation zu einem gebundenen Element mit dem
- spezifizierten Namen hinzu (/definitions/binding/operation).
- </para>
- <para>
- Sie nimmt das <code>XML_Tree_Node</code> Objekt das von <code>addBinding()</code>
- zurückgegeben wird als Eingabe (<code>$binding</code> Parameter) um ein 'operation'
- Element mit Eingabe/Ausgabe/Falsch Einträgen hinzuzufügen abhängig von den
- spezifizierten Parametern.
- </para>
- <para>
- Die Zend_Soap_Server Implementation fügt korrespondierende gebundene Einträge für jede
- Web Service Methode mit Eingabe und Ausgabe Einträgen hinzu die ein 'soap:body' Element
- als '<soap:body use="encoded"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> definieren.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_bindings"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_soap_binding">
- <title>Die addSoapBinding() Methode</title>
- <para>
- Die <code>addSoapBinding($binding, $style = 'document', $transport =
- 'http://schemas.xmlsoap.org/soap/http')</code> Methode fügt einen SOAP Bindung Eintrag
- ('soap:binding') zum Bindung Element (welches bereits zu einigen Port Typen verbunden
- ist) mit dem spezifizierten Stil und Transport hinzu (Die Zend_Soap_Server
- Implementation verwendet RPC Stil über HTTP).
- </para>
- <para>
- Das '/definitions/binding/soap:binding' Element wird verwendet um zu signieren das das
- Bindung zum SOAP Protokoll Format gebunden ist.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_bindings"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_soap_operation">
- <title>Die addSoapOperation() Methode</title>
- <para>
- Die <code>addSoapOperation($binding, $soap_action)</code> Methode fügt einen SOAP
- Operations Eintrag ('soap:operation') zum Bindungs Element mit den spezifizierten
- Aktionen hinzu. Das 'style' Attribut des 'soap:operation' Elements wird nicht verwendet
- seit das Programmier Modell (RPC-orientiert oder Dokument-orientiert) die
- <code>addSoapBinding()</code> Methode verwenden kann.
- </para>
- <para>
- Das 'soapAction' Attribut des '/definitions/binding/soap:operation' Elements
- spezifiziert den Wert des SOAPAction Headers für diese Operation. Dieses Attribut wird
- für SOAP über HTTP benötigt und <emphasis>darf in keinem Fall</emphasis> für andere
- Transporte spezifiziert werden.
- </para>
- <para>
- Die Zend_Soap_Server Implementation verwendet <code>$serviceUri . '#' .
- $methodName</code> für den SOAP Operations Action Namen.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_soap:operation"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_service">
- <title>Die addService() Methode</title>
- <para>
- Die <code>addService($name, $port_name, $binding, $location)</code> Methode fügt dem
- WSDL Dokument ein '/definitions/service' Element mit dem spezifizierten Web Service
- Namen, Port Namen, Bindung und Ort hinzu.
- </para>
- <para>
- WSDL 1.1 erlaubt es verschiedene Port Typen pro Service zu haben (Sets von Operationen).
- Diese Fähigkeit wird von der Zend_Soap_Server Implementation nicht verwendet und von der
- <classname>Zend_Soap_Wsdl</classname> Klasse nicht unterstützt.
- </para>
- <para>
- Die Zend_Soap_Server Implementation verwendet:
- <itemizedlist>
- <listitem>
- <para>
- <code>$name . 'Service'</code> als Web Service Name,
- </para>
- </listitem>
- <listitem>
- <para>
- <code>$name . 'Port'</code> als Port Typ Name,
- </para>
- </listitem>
- <listitem>
- <para>
- <code>'tns:' . $name . 'Binding'</code>
- <footnote>
- <para>
- <code>'tns:' namespace</code> wird als Skript URI definiert
- (<code>'http://' .$_SERVER['HTTP_HOST'] .
- $_SERVER['SCRIPT_NAME']</code>).
- </para>
- </footnote>
- als Bindungs Name,
- </para>
- </listitem>
- <listitem>
- <para>
- Die Skript URI<footnote><para><code>'http://' .$_SERVER['HTTP_HOST'] .
- $_SERVER['SCRIPT_NAME']</code></para></footnote> als eine Service URI für
- die Web Service Definition bei Verwendung von Klassen.
- </para>
- </listitem>
- </itemizedlist>
- wobei <code>$name</code> der Klassenname für die Web Service Definition ist wenn Klassen
- verwendet werden und Skript Name für die Web Service Definition wenn ein Set von
- Funktionen verwendet wird.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_services"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.types">
- <title>Typ Entsprechung</title>
- <para>
- Die Zend_Soap WSDL Implementation der Zugriffsmethoden verwendet die folgenden Typ
- Entsprechungen zwischen PHP und SOAP Typen:
- <itemizedlist>
- <listitem>
- <para>PHP Strings <-> <code>xsd:string</code>.</para>
- </listitem>
- <listitem>
- <para>PHP Integer <-> <code>xsd:int</code>.</para>
- </listitem>
- <listitem>
- <para>PHP Float und Double <-> <code>xsd:float</code>.</para>
- </listitem>
- <listitem>
- <para>PHP Boolean <-> <code>xsd:boolean</code>.</para>
- </listitem>
- <listitem>
- <para>PHP Arrays <-> <code>soap-enc:Array</code>.</para>
- </listitem>
- <listitem>
- <para>PHP Objekt <-> <code>xsd:struct</code>.</para>
- </listitem>
- <listitem>
- <para>
- PHP Klasse <-> basierend auf der Strategie der komplexen Typen (Siehe:
- <xref linkend="zend.soap.wsdl.types.add_complex" />)
- <footnote>
- <para>
- Standardmäßig wird <classname>Zend_Soap_Wsdl</classname> mit der
- Klasse
- <classname>Zend_Soap_Wsdl_Strategy_DefaultComplexType</classname>
- als Erkennungsalgorithmus für komplexe Typen erstellt. Der erste
- Parameter des AutoDiscover Constructors nimmt jede Strategie für
- komplexe Typen die
- <classname>Zend_Soap_Wsdl_Strategy_Interface</classname>
- implementiert oder einen String mit dem Namen dieser Klasse. Für
- Rückwärtskompatibilität mit den dem Boolean
- <code>$extractComplexType</code> werden Variablen auf dem folgenden
- Weg geparst: Bei true, wird
- <classname>Zend_Soap_Wsdl_Strategy_DefaultComplexType</classname>
- verwendet, und bei false
- <classname>Zend_Soap_Wsdl_Strategy_AnyType</classname>.
- </para>
- </footnote>.
- </para>
- </listitem>
- <listitem>
- <para>PHP Void <-> Leerer Typ.</para>
- </listitem>
- <listitem>
- <para>Wenn der Typ auf irgendeinem Grund zu keinem dieser Typen passt, dann wird
- <code>xsd:anyType</code> verwendet.</para>
- </listitem>
- </itemizedlist>
- Wo <code>xsd:</code> ein "http://www.w3.org/2001/XMLSchema" Namespace ist, ist
- <code>soap-enc:</code> ein "http://schemas.xmlsoap.org/soap/encoding/" Namespace,
- und <code>tns:</code> ist ein "Ziel Namespace" für das Service.
- </para>
- <sect3 id="zend.soap.wsdl.types.retrieve">
- <title>Empfangen von Typ Informationen</title>
- <para>
- Die <code>getType($type)</code> Methode kann verwendet werden um ein Mapping für
- einen spezifizierten PHP Typ zu erhalten:
- <programlisting language="php"><![CDATA[
- ...
- $wsdl = new Zend_Soap_Wsdl('My_Web_Service', $myWebServiceUri);
- ...
- $soapIntType = $wsdl->getType('int');
- ...
- class MyClass {
- ...
- }
- ...
- $soapMyClassType = $wsdl->getType('MyClass');
- ]]></programlisting>
- </para>
- </sect3>
- <sect3 id="zend.soap.wsdl.types.add_complex">
- <title>Hinzufügen komplexer Typ Informationen</title>
- <para>
- Die <code>addComplexType($type)</code> Methode wird verwendet um komplexe Typen
- (PHP Klassen) zu einem WSDL Dokument hinzuzufügen.
- </para>
- <para>
- Es wird automatisch von der <code>getType()</code> Methode verwendet und fügt einen
- korrespondierenden komplexen Typen von Methodenparametern oder Rückgabetypen hinzu.
- </para>
- <para>
- Der Algorithmus für das Erkennen und Aufbauen basiert auf der aktuellen Strategie
- für die aktive Erkennung von komplexen Typen. Man kann die Strategie für die
- Erkennung setzen indem entweder der Klassenname as String spezifiziert wird, oder
- indem eine Instanz einer <classname>Zend_Soap_Wsdl_Strategy_Interface</classname>
- Implementation als dritter Parameter des Konstruktors verwendet wird, oder indem die
- <code>setComplexTypeStrategy($strategy)</code> Funktion von Zend_Soap_Wsdl verwendet
- wird. Die folgenden Strategien für die Erkennung existieren aktuell:
- </para>
- <itemizedlist>
- <listitem>
- <para>Klasse <classname>Zend_Soap_Wsdl_Strategy_DefaultComplexType</classname>:
- Standardmäßig aktiviert (wenn dem Konstruktor kein dritter Parameter gesetzt
- wird). Er iteriert über die öffentlichen Attribute eines Klassentyps und
- registriert Sie als Untertypen des komplexen Objekttyps.</para>
- </listitem>
- <listitem>
- <para>Klasse <classname>Zend_Soap_Wsdl_Strategy_AnyType</classname>: Castet alle
- komplexen Typen in einen einfachen XSD Typ xsd:anyType. Vorsicht ist angeraten
- da diese Abkürzung für die Erkennung von komplexen Typen kann warscheinlich nur
- von lose typisierten Sprachen wie PHP erfolgreich behandelt werden.
- </para>
- </listitem>
- <listitem>
- <para>Klasse <classname>Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence</classname>:
- Diese Strategie erlaubt es die Rückgabeparameter mit diesen Typen zu
- spezifizieren: <code>int[]</code> oder <code>string[]</code>. Er kann einfache
- PHP Typen wie Int, String, Boolean, Float und so weiter behandeln, erlaubt aber
- die Spezifikation von verschachtelten Arrays oder Typen von Arrays.</para>
- </listitem>
- <listitem>
- <para>Klasse <classname>Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex</classname>:
- Diese Strategie erlaubt die Erkennung von sehr komplexen Arrays von Objekten.
- Objekttypen werden basierend auf
- <classname>Zend_Soap_Wsdl_Strategy_DefaultComplexType</classname> erkannt und
- ein Array wird um diese Definition gewrappt.</para>
- </listitem>
- <listitem>
- <para>Klasse <classname>Zend_Soap_Wsdl_Strategy_Composite</classname>: Diese
- Strategie kann alle Strategien kombinieren indem PHP komplexe Typen
- (Klassennamen) zu der gewünschten Strategie über die
- <code>connectTypeToStrategy($type, $strategy)</code> Methode verbunden werden.
- Eine komplette Typemap kann dem Contructor als Array, mit <code>$type</code> ->
- <code>$strategy</code> Paaren angegeben werden. Der zweite Parameter
- spezifiziert die Standardstrategie die verwendet wird wenn ein unbekannter Typ
- hinzugefügt werden soll. Diese Parameter ist standardmäßig die
- <classname>Zend_Soap_Wsdl_Strategy_DefaultComplexType</classname>
- Strategie.</para>
- </listitem>
- </itemizedlist>
- <para>
- Die <code>addComplexType()</code> Methode erstellt ein
- '/definitions/types/xsd:schema/xsd:complexType' Element für jeden beschriebenen
- komplexen Typen mit dem Namen der spezifizierten PHP Klasse.
- </para>
- <para>
- Die Klassen Eigenschaften <emphasis>MÜSSEN</emphasis> ein Docblock Kapitel mit den
- beschriebenen PHP Typen haben damit die Eigenschaft in die WSDL Beschreibung
- hinzugefügt wird.
- </para>
- <para>
- <code>addComplexType()</code> prüft ob der Typ bereits im Typ Kapitel des WSDL
- Dokuments beschrieben wird.
- </para>
- <para>
- Es verhindert Duplikate wenn diese Methode zwei oder mehrmals aufgerufen wird und
- auch Rekursionen im Kapitel der Typ Definitionen.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_types"/> für Details.
- </para>
- </sect3>
- </sect2>
- <sect2 id="zend.soap.wsdl.add_documentation">
- <title>Die addDocumentation() Methode</title>
- <para>
- Die <code>addDocumentation($input_node, $documentation)</code> Methode fügt menschlich
- lesbare Dokumentation hinzu indem das optionale 'wsdl:document' Element verwendet wird.
- </para>
- <para>
- Das '/definitions/binding/soap:binding' Element wird verwendet um zu signieren das die
- Bindung zum SOAP Protokoll Format gebunden wurde.
- </para>
- <para>
- Siehe <ulink url="http://www.w3.org/TR/wsdl#_documentation"/> für Details.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.retrieve">
- <title>Das endgültige WSDL Dokument erhalten</title>
- <para>
- Die <code>toXML()</code>, <code>toDomDocument()</code> und <code>dump($filename =
- false)</code> Methoden können verwendet werden um das WSDL Dokument als XML, DOM
- Struktur oder Datei zu erhalten.
- </para>
- </sect2>
- <sect2 id="zend.soap.wsdl.parser">
- <title>Parsen von WSDL Dokumentenrsing WSDL documents</title>
- <para>
- Zend_Soap_Wsdl enthält auch einen Parser für WSDL Dokumente der seine eigene
- Hauptanwendung für das Unit-Testen und die Code-Erzeugung von SOAP Webservices (Client
- und Server) hat. Das folgende Beispiel zeigt wie der Parser verwendet werden kann:
- </para>
- <programlisting language="php"><![CDATA[
- // Laden von WSDL in DOMDocument
- $dom = new DOMDocument();
- $dom->loadXML($wsdlString);
- // Parser erstellen
- $parser = Zend_Soap_Wsdl_Parser::factory($dom);
- $result = $parser->parse();
- // Name des Webservices
- echo $result->getName();
- // Auf Ports und innere Element zugreifen
- foreach($result->ports AS $port) {
- echo $port->getName();
- foreach($port->bindings AS $binding) {
- echo $binding->getName();
- foreach($binding->operations AS $operation) {
- echo $operation->getName();
- echo $operation->inputMessage->getName();
- echo $operation->outputMessage->getName();
- }
- }
- }
- // Man kann auf Bindungen, Nachrichten und Operationen und andere
- // Elemente direkt zugreifen
- foreach($result->operations AS $operation) {
- // mach was
- }
- foreach($result->bindings AS $binding {
- // mach was
- }
- foreach($result->messages AS $message) {
- // mach was
- }
- foreach($result->services AS $service) {
- // mach was
- }
- foreach($result->types AS $type) {
- // mach was
- }
- ]]></programlisting>
- <para>Alle Element implementieren das Interface
- <classname>Zend_Soap_Wsdl_Element_Interface</classname> das auf eine <code>getName()</code>
- und <code>getDocumentation()</code> Funktion mit den eindeutigen Identifikatoren des
- Elements und seiner Dokumentation verweist. Alle Elemente haben öffentliche Eigenschaften
- die Ihren Status detailierter beschreiben und auch Ihre untergeordneten Abhängigkeiten für
- den einfachen Zugriff über Iteration enthalten.</para>
- </sect2>
- </sect1>
|