fjh: Wozu braucht man das targetNamespace-Attribut?

Beitrag lesen

Hallo Eeye,

Kurzer XML-sample Ausschnitt:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="SQref"
  targetNamespace="http://www.SQref.com/def/SQrefInterface"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:tns="http://www.SQref.com/def/SQrefInterface"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

[...bla bla bla...n'haufen tags und attribute]

</definitions>

targetNamespace heißt "Zielnamensraum". Ein Zielnamensraum wird in XML-Schema dazu genutzt, festzulegen zu welchem Namensraum die Elemente gehören, die Du in Deinem XML-Schema deklarierst. Es gibt dann Mechanismen, um Elemente aus diesem Raum auszuschließen oder dazu zu fügen. Sowas geht mit DTDs übrigens nicht.

Dein XML-Dokument ist ein WSDL-Dokument. WSDL ist eine XML-Anwendung zur Beschreibung von Web-Services (Web Services Description Language). Grob gesagt kannst du eine solche standardisierte Beschreibung in einer Art Repository ablegen, dann wissen andere Services, wie Sie diesen Service aufrufen müssen.

XML-Schema wird in diesem Zusammenhang dazu genutzt, um z.B. Datentypen der Parameter festzulegen, die Methoden des Service erwarten. SOAP (s. soap-Namensraum) wird u.a. genutzt, um die Methodenaufrufe über HTTP-Requests zu ermöglichen.

Naja, ob Dir das nun das ist, was du hören wolltest...

Jedenfalls target-Namespace gehört zu XML-Schema:
http://www.w3.org/TR/xmlschema-1/#composition

und die Spec für WSDL:
http://www.w3.org/TR/wsdl.

Gruß
Franz