Auf den YAML Spezifikationen gibt es einen Absatz 2.11 über das Fragezeichen:
Ein Fragezeichen und Leerzeichen ("?") zeigen einen komplexen Zuordnungsschlüssel an. Innerhalb einer Blockauflistung können Schlüssel: Wert-Paare unmittelbar nach dem Bindestrich, Doppelpunkt oder Fragezeichen beginnen.
Dieses Beispiel ist gegeben:
%Vor%Dieses andere Beispiel kann auch nicht in XML konvertiert werden:
%Vor%Leider verstehe ich nicht, was es bedeutet. Ich habe versucht, dies mit codebeautify in XML zu konvertieren, aber ich bekomme einen Fehler.
Meine Frage ist also:
Was macht das Fragezeichen?
Die Spezifikation ist nicht sehr klar, aber nach ein bisschen Kopfkratzen habe ich es herausgefunden. YAML verfügt über zwei Arten von Blockzuordnungsschlüsseln: implizit und explizit. Der implizite Stil ist die Art, mit der Sie vertraut sind:
%Vor%Wenn wir dieses YAML in Ruby laden (zum Beispiel), erhalten wir folgendes Ergebnis:
%Vor%Aber wir können auch expliziten Stil verwenden, um dasselbe auszudrücken:
%Vor% Mit anderen Worten, eine Zeile, die mit ?
beginnt, zeigt einen Schlüssel an und eine Zeile, die mit :
beginnt, zeigt einen Wert an.
Was nutzt das? Nun können wir jede YAML-Struktur als Zuordnungsschlüssel verwenden. Möchten Sie eine Sequenz als Zuordnungsschlüssel verwenden? Sie können! Möchten Sie ein Mapping als Mapping-Schlüssel verwenden? Siehe:
%Vor%In Ruby würde dies den folgenden entzückenden Hash ergeben:
%Vor%Oh, und das Beispiel "Detroit Tigers" sieht so aus, wenn Ruby es analysiert:
%Vor%Tags und Links yaml