Hi, fjh
*g* Ich arbeite grad an einem WebService Projekt, von daher hast du mir nicht wirklich was neues erzählt *gg*
Hm, interessant. Worum gehts denn. Erzähl doch mal ein wenig, wenn Du Lust hast und darfst.
Was hat aber targetNamespace in meinem XML- (korrekt erkannt, eigentlich: WSDL-)Dokument zu suchen? Weil den default Namespace für das Dokument leg ich meines Wissens nach mit xmlns="URI" fest. Und wie gesagt, den Namespace von dem Webservice leg ich nach Standart mit xmlns:tns="URI" fest, wobei tns auch targetNamespace heisst, soweit ich weiss. *grübel*
WSDL nutzt XML-Schema zur Beschreibung der *Struktur* eines Web Services, d.h. in einer WSDL-Datei gibt es eine Sektion
<types>
...
</types>
in der das Schema einer Message (SOAP, HTTP oder was auch immer für ein Protokoll-Binding für den Web-Service verwendet wird) definiert wird.
Z.B.
<types>
<schema targetNamespace="http://meinNamensraum/schema.xsd">
<element name="Methodenaufruf">
<complexType>
...
</complexType>
</element>
</schema>
</types>
Definiert würde hier ein Element namens "Methodenaufruf", Dieses Element wird über targetNamespace dem Namensraum "http://meinNamensraum/schema.xsd" zugeordnet.
Nutzt du dieses Element nun z.B. in einem <message>-Tag Deiner WSDL-Datei, dann muss es dort ein Namensraumpräfix erhalten, das den targetNamespace vertritt:
<message name="RufeMethodeAuf">
<part name="body" element="schema1:Methodenaufruf">
</message>
Und in deinem <definitions>-Element steht dann die Deklaration dieses Namensraums
<definitions .....
xmlns:schema1="http://meinNamensraum/schema.xsd">
Es ist also beim targetNamespace was anderes als mit der Namensraumdeklaration. Über targetNamespace gibst Du den Namensrauman, zu dem alle deklarierten Elemente des Schemas bzw. auch der WSDL-Datei gehören. Mit der Namensraumdeklaration ordnest du ein Präfix diesem Namensraum zu, was Du dann benutzt, um die Elemente als aus einem Namensraum stammend zu bezeichnen.
Gruß
Franz