Para la reposición de archivo por el Labor Day en Estados Unidos, el editor de Daily WTF Remy Porter recupera un envío de la lectora Stella, quien heredó un esquema XML pensado para validar un lenguaje de consulta casero usado en un sistema de reservas de viajes.

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

El lenguaje, llamado "Source", permite referenciar datos de reserva estructurados mediante rutas separadas por puntos, como Product.Accommodation.SellingAccom.Unit.SellingUnit, Product.OnewayFlight.BookingClass, Product.ReturnFlight.Inbound, Product.ReturnFlight.Outbound o Product.Addon.Service.ServiceFeature. Las consultas también pueden llevar un prefijo opcional de indicadores ordenados: alcance (local o global), tipo de componente (real, virtual o ComponentType.all), jerarquía (self, ancestors, descendants o Hierarchy.all) y asignación de día (first, last o DayAllocation.all), separados de la ruta por dos puntos.

En lugar de expresar esa gramática mediante tipos XSD anidados, el predecesor de Stella empaquetó todo el conjunto de reglas en una sola expresión regular xs:pattern, de 1.310 caracteres, dentro de un xs:simpleType llamado SourceAttributeType. Stella tuvo que localizar y corregir un error en esa expresión, describiendo la depuración como algo que mata "unos pocos gatitos" cada vez que se evalúa el patrón.

El esquema sí incluye documentación, en alemán e inglés, que explica la misma gramática en prosa legible justo encima del regex ilegible que se supone debe hacerla cumplir.