Immer mal wieder muss man als Mobiler Entwickler JSON oder XML Dokumente zusammenstellen und versenden um Daten und Objekte mit anderen Apps oder Servern auszutauschen. Sich dabei an die erwartete Syntax zu halten fällt manchmal schwerer und manchmal leichter. Wenn eine Definition der Syntax in Form eines .xsd Datei (XSD = XML Schema Definition) existiert, ist es um so leichter. Aber man muss sie leider auch richtig lesen.
Nun ist das Lesen einer .xsd-Datei ja nicht wirklich schwer, aber so eine Datei ist manchmal schon ganz schön lang und so kommt es, dass man schon mal ein Detail übersieht. So ist es eben eine Selbstverständlichkeit, wenn man bei einer vorgeschriebenen Sequenz die Reihenfolge einhält.
Nun werden Sequenzen allerdings auch gerne mal so verwendet, dass die Forderung nach ihrer Reihenfolge eher eine zahnlose ist, also nicht so wichtig ist, indem die einzelnen Elemente der Sequenz optional sind und die Sequenz beliebig häufig wiederholt werden kann. So kann in einer vorgeschriebenen Sequenz von a b c durchaus c b a erlaubt sein, wenn die Sequenz dreimal wiederholt werden kann und alle Elemente optional sind. Dann ist die erste runde c, dann b, dann a gegeben. Nach der 10. l sofern kann es schon mal sein, dass man eine Sequenz beim lesen nicht so ernst nimmt, wie es der Fall wäre, wenn man
In einem Fall, in dem eine Definitionsdatei vorhanden war, verarbeitete der Server die Daten in einer Sequenz. Allerdings brach er immer wieder nach 3 von 4 Elementen ab. Nach einigem Testen und einem erneuten Blick in die Definitionsdatei war klar: Die Erwartung einer „zahnlosen Sequenz“ war falsch. Diese Definition legte Wert darauf, alle Elemente nur einmal und damit in der richtigen Reihenfolge erscheinen. Kaum war das bewerkstelligt, wurden auch alle Elemente vom Server erkannt.
Eine Sequenz ist eben manchmal eine echte Forderung und manchmal ein zahnloser Tiger. Der Tipp des Tages könnte also lauten: Achten Sie auf die Details und machen sich die Reihenfolge lieber wie vorgeschrieben, dann versteht Sie auch der Server.