Pour le rerun d'archive du Labor Day aux États-Unis, le rédacteur de Daily WTF Remy Porter republie une contribution de la lectrice Stella, qui avait hérité d'un schéma XML censé valider un langage de requête maison utilisé dans un système de réservation de voyages.

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

Ce langage, baptisé "Source", permet de référencer des données de réservation structurées via des chemins séparés par des points, comme Product.Accommodation.SellingAccom.Unit.SellingUnit, Product.OnewayFlight.BookingClass, Product.ReturnFlight.Inbound, Product.ReturnFlight.Outbound ou Product.Addon.Service.ServiceFeature. Les requêtes peuvent aussi porter un préfixe optionnel de drapeaux ordonnés : la portée (local ou global), le type de composant (real, virtual ou ComponentType.all), la hiérarchie (self, ancestors, descendants ou Hierarchy.all) et l'allocation journalière (first, last ou DayAllocation.all), séparés du chemin par deux-points.

Au lieu d'exprimer cette grammaire via des types XSD imbriqués, le prédécesseur de Stella avait tassé l'ensemble des règles dans une seule expression régulière xs:pattern, longue de 1 310 caractères, à l'intérieur d'un xs:simpleType nommé SourceAttributeType. Stella a dû traquer et corriger un bug dans cette expression, décrivant le débogage comme un processus qui fait mourir "quelques petits chatons" à chaque évaluation du motif.

Le schéma comporte tout de même une documentation, en allemand et en anglais, qui détaille la même grammaire en prose lisible juste au-dessus du regex illisible censé la faire respecter.