Blog

Wenn es wie XML aussieht...

Jeroen van Erp

Aktualisiert Oktober 23, 2025
2 Minuten

Und wenn es sich wie XML verhält, dann muss es auch XML sein. Ja, wie falsch man mit Annahmen liegen kann, zeigt sich einmal mehr in diesem Blog. Einer unserer Kunden hat eine Anwendung, über die Videos gestreamt werden. Dazu stellt er einen in den Browser eingebetteten Player oder Ihren eigenständigen Windows Media Player mit einer ASX-Datei bereit. Die ASX-Datei sieht in der Regel wie folgt aus:



So weit, so gut. Solange diese "video.wmv" existiert, wird sie vom Windows Media Player korrekt abgespielt. Unser Kunde wollte jedoch, dass wir der ASX-Datei Metadaten aus einer Datenbank hinzufügen, so dass Sie bei der Wiedergabe in Ihrem eigenständigen Windows Media Player den Titel, den Autor und das Veröffentlichungsdatum des Videos sowie ein Logo des Unternehmens sehen. Das Problem war jedoch, dass wir diese ASX-Dateien nicht generieren, sondern dass sie auf dem Streaming-Server existieren. Das bedeutete, dass wir die ASX-Dateien im laufenden Betrieb lesen, ändern und die Antwort an den anfragenden Client senden mussten. Aufgrund des Formats beschlossen wir, Dom4J zu verwenden, um das XML zu parsen und einen DOM-Baum der ASX zu erstellen. Anschließend fügten wir dem DOM-Dokument Knoten hinzu und schrieben das resultierende XML in den Antwortstrom. Das XML, das das Ergebnis dieser Übung war, sah wie folgt aus:



  00:00:10.00
Titel des Videos

Xebia 2007-08-17

Dies ist gültiges XML. Aber plötzlich wurden die Videos im Windows Media Player nicht mehr abgespielt. Nachdem wir die einzelnen Tags anhand der ASX Elements Reference auf MSDN noch einmal sorgfältig überprüft hatten, konnten wir nicht herausfinden, was mit dieser ASX-Datei nicht in Ordnung war. Das war, bis wir die folgende Aussage hier lasen: "... Die ersten vier Zeichen einer ASX-Datei müssen <ASX sein. ..." Moment mal, das heißt, es handelt sich um XML, aber Sie können die XML-Präambel nicht mit einbeziehen?!... Nachdem ich die Präambel aus dem XML-Ergebnis entfernt hatte, funktionierte die Datei plötzlich wieder, und das Video wurde gestreamt. Die wertvolle Lektion hier ist natürlich, dass, wenn es wie XML aussieht, geht, spricht und sich verhält, es trotzdem nicht wirklich XML sein kann.

Verfasst von

Jeroen van Erp

Contact

Let’s discuss how we can support your journey.