Zum Feiertag Labor Day in den USA holt Daily-WTF-Redakteur Remy Porter eine ältere Einsendung der Leserin Stella hervor, die ein XML-Schema erbte, das eine hausgemachte Abfragesprache für ein Reisebuchungssystem validieren sollte.

SourceAttributeType grammar (from XSD docs)
source = ( Feature1+Feature2+... ":" )? steps
Feature1 = "local" | "global"
Feature2 = "real" | "virtual" | "ComponentType.all"
Feature3 = "self" | "ancestors" | "descendants" | "Hierarchy.all"
Feature4 = "first" | "last" | "DayAllocation.all"
steps = oneOrMoreNameSteps | zeroOrMoreNameSteps | componentSteps
nameStep = "#" name

Die Sprache namens "Source" erlaubt es, über punktgetrennte Pfade auf strukturierte Buchungsdaten zuzugreifen, etwa Product.Accommodation.SellingAccom.Unit.SellingUnit, Product.OnewayFlight.BookingClass, Product.ReturnFlight.Inbound, Product.ReturnFlight.Outbound oder Product.Addon.Service.ServiceFeature. Optional lässt sich dem Pfad ein Präfix aus geordneten Flags voranstellen: Scope (local oder global), Komponententyp (real, virtual oder ComponentType.all), Hierarchie (self, ancestors, descendants oder Hierarchy.all) und Tageszuordnung (first, last oder DayAllocation.all), getrennt vom Pfad durch einen Doppelpunkt.

Statt diese Grammatik über verschachtelte XSD-Typen abzubilden, hatte Stellas Vorgänger das komplette Regelwerk in einen einzigen xs:pattern-Ausdruck gepresst, 1.310 Zeichen lang, innerhalb eines xs:simpleType namens SourceAttributeType. Stella musste darin einen Fehler aufspüren und beheben und beschrieb das Debugging als etwas, bei dem jedes Mal "ein paar kleine Kätzchen sterben", wenn der Ausdruck ausgewertet wird.

Das Schema enthält immerhin Dokumentation auf Deutsch und Englisch, die dieselbe Grammatik in lesbarer Prosa direkt über dem unlesbaren Regex erklärt, der sie eigentlich durchsetzen soll.