SOAP und WSDL
Die wichtigsten Befehle zum Merken
xmllint --noout DATEI— XML-Wohlgeformtheit prüfen.xmllint --format DATEI— eine lesbare XML-Ansicht ausgeben.
Befehle und Optionen
| Option | Bedeutung |
|---|---|
--nonet |
Netzwerkzugriff des XML-Parsers deaktivieren. |
--noout |
Dokumentausgabe unterdrücken, Parsefehler weiter melden. |
--format |
XML zur Ansicht formatieren, ohne die Quelldatei umzuschreiben. |
Verwende einen vertrauenswürdigen Export. Es werden keine Entitäten substituiert, Schemas geladen oder SOAP-Anfragen gesendet.
Die entscheidenden Konzepte
1. SOAP definiert eine XML-Nachrichtenhülle
SOAP ist ein Nachrichtenframework mit XML-Envelope. Ein optionaler Header trägt Nachrichtenmetadaten, der Body die Anwendungsnachricht oder einen Fehler.
SOAP ist nicht beliebiges XML über HTTP. Hüllenstruktur und Verarbeitungsregeln zählen. HTTP ist eine häufige Bindung, aber Nachrichtenframework und Transportbindung bleiben verschiedene Konzepte.
2. Namensräume bestimmen mehr als die Schreibweise
XML-Namensräume qualifizieren Namen, damit unterschiedliche Vokabulare zusammenpassen. Präfixe sind lokale Aliasse. Namespace-URI und lokaler Name bestimmen die Identität, nicht die Wahl von soap oder s als Präfix.
SOAP 1.1 und 1.2 verwenden verschiedene Envelope-Namensräume und HTTP-Konventionen. Gemischte Header und Body-Fragmente können plausibel aussehen, aber den Dienstvertrag verletzen.
3. WSDL beschreibt den Dienstvertrag
Web Services Description Language (WSDL) beschreibt Operationen, Nachrichten, Bindungen und Endpunkte. XML Schema definiert Datentypen. Generierte Clients verwenden den Vertrag zum Erstellen und Interpretieren des Austauschs.
Bei WSDL 1.1 beschreiben Port Types abstrakte Operationen; Bindings verbinden sie mit konkreten Protokollen. Andere Versionen verwenden andere Begriffe. Importierte Definitionen können nötig sein, sodass eine Datei nicht jeden Typ enthält.
4. Ein geparstes Dokument ist kein erfolgreicher Aufruf
XML-Wohlgeformtheit prüft Syntax. Schemavalidierung prüft ein Schema. SOAP-Verarbeitung prüft Hülle und Nachrichtenregeln. Danach entscheidet die Anwendung über erlaubte und sinnvolle Operationen.
Ein SOAP Fault beschreibt Verarbeitungsfehler und muss zusammen mit dem HTTP-Status gelesen werden. Authentifizierung und Nachrichtensignaturen ergänzen weitere Anforderungen. Korrekte XML-Syntax beweist weder Signatur noch Autorisierung oder fachlichen Erfolg.
Ein kleines Beispiel
Optional: Lege einen vertrauenswürdigen WSDL-Export als service.wsdl im aktuellen Verzeichnis bereit. Die Befehle rufen keinen Dienst auf.
xmllint --nonet --noout service.wsdl
xmllint --nonet --format service.wsdl
Der erste Befehl bleibt bei wohlgeformtem XML normalerweise still und liefert bei Parsefehlern einen Fehlerstatus. Er validiert weder gegen WSDL noch gegen XML Schema.
Suche in der formatierten Ansicht Namensräume, Operationen, Typreferenzen, Bindings und Endpunktadressen. Elementnamen hängen von der Version ab. Importierte Schemas bleiben separat und werden ohne Netzwerkzugriff nicht geladen.
Ein lesbarer Vertrag beweist weder einen laufenden Endpunkt noch deine Aufrufberechtigung. Die Datei bleibt unverändert; Aufräumen ist nicht erforderlich. Teile interne Adressen oder sensible Annotationen nicht unbeabsichtigt.
Merke dir: SOAP definiert Nachrichten, WSDL den Vertrag. XML-Parsing ist nur die erste Prüfungsebene.