2009-10-21 6 views
6

Ich verstehe nicht ganz, wie anwendungsspezifische YAML-Tags zu verwenden, und vielleicht ist es, weil meine gewünschte Verwendung von ihnen rein falsch ist. Ich benutze YAML für eine Konfigurationsdatei und hoffte, Tags zu verwenden, um meinem Konfigurationslader einen Hinweis zu geben, zu welchem ​​Datentyp die Daten in - anwendungsspezifische Datentypen analysiert werden sollen.Verwendung von YAML-Tags zur Bezeichnung von Typen

Ich verwende auch libyaml mit C.

So mag ich werde ich versuche, so etwas wie ...

shapes: 
    square: "0,4,8,16" 
    circle: "5,10" 

In meiner App zu tun Tags als Hinweise verwenden, so dass ich kann die Werte von Quadrat in meine quadratische Datenstruktur und die Werte von Kreis in meine Kreisdatenstruktur laden (diese Werte bedeuten nichts in diesem Beispiel).

So mache ich zur Zeit:

shapes: 
    square: !square "0,4,8,16" 
    circle: !circle "5,10" 

libyaml wird ein Etikett "! Square" zur Verfügung stellen, wenn ich das skalare "0,4,8,16" übergeben. Ist es zulässig, dieses Tag zu verwenden, um meinem Loader einen Hinweis zur Verarbeitung des Skalars zu geben?

Da es für mich funktioniert, bin ich mehr neugierig, ob es richtig ist. Und wenn nicht, wie würde ich das besser machen?

Danke.

Antwort

3

Ich weiß, dass dies eine alte Frage, aber irgendwie habe ich gesehen! Int, etc in yaml-Dateien verwendet werden, bevor so ging ich die Spezifikationen bei Yaml 1.2 SpeC# Tags

application specific tag: !something | 
The semantics of the tag 
above may be different for 
different documents. 

Gemäß dem Dokument zu sehen Es sieht so aus, als ob die beabsichtigte Verwendung von Tags für anwendungsspezifische Tags korrekt ist.

Verwandte Themen