WDDX (Web Distributed Data eXchange) ist ein plattform- und transportneutraler programmiersprachlicher Mechanismus für den Austausch von Daten zwischen unterschiedlichen System-Umgebungen und Computern. Das Format unterstützt einfache Datentypen wie Zahlen, Zeichenketten, Boolean usw. und komplexe Zustände dieser in Form von Strukturen, Arrays und Datensätzen (z. B. Tabellen, typischerweise aus Datenbankabfragen). Es gibt WDDX-Schnittstellen für eine große Anzahl von Programmiersprachen. ColdFusion, Ruby, Python, PHP, Java, C++, .NET, ActionScript, Lisp, Haskell, Perl und verschiedene Plattformen unterstützen es sehr gut.
Die Daten werden anhand einer XML 1.0 DTD in XML strukturiert – eine plattformunabhängige, jedoch recht sperrige Repräsentation. Die XML-verpackten Daten können nun auf Basis von HTTP, FTP, oder weiteren Transportmechanismen an andere Programme und Computer gesendet werden. Die empfangende Instanz muss WDDX ebenso unterstützen, um die Daten in das gewünschte native Format übersetzen zu können. WDDX kann ebenso dazu genutzt werden, um eine Serialisierung durchzuführen, z. B. in ein Dateisystem oder eine Datenbank. Viele Anwendungen nutzen WDDX, um komplexe Daten an Browser zu senden, die dort mit JavaScript bearbeitet werden können – dies ist essentiell bei der Entwicklung von Ajax-basierenden Webanwendungen.
Ursprünglich wurde WDDX 1998[1] von Simeon Simeonov von der Allaire Corporation für die Serverumgebung ColdFusion geschrieben und später als Open Source veröffentlicht.
WDDX und XML-RPC, beide 1998 erschaffen, waren die Vorlage für SOAP und Webservice. SOAP lieh sich die envelope/header/body-Struktur sowie die Transport- / Interaktions-Neutralität von WDDX und die HTTP- /RPC-Bindungen von XML-RPC.
Beispiel:[2]
<wddxPacket version='1.0'>
<header comment='PHP'/>
<data>
<struct>
<var name='pi'>
<number>3.1415926</number>
</var>
<var name='cities'>
<array length='3'>
<string>Austin</string>
<string>Novato</string>
<string>Seattle</string>
</array>
</var>
</struct>
</data>
</wddxPacket>