Je ne comprends pas ce qu'est un tag est YAML
- Je l'obtenir à un certain niveau, mais je n'ai pas encore vu un exemple qui n'a pas apporté plus de questions que de réponses.
http://rhnh.net/2011/01/31/yaml-tutorial
# Set.new([1,2]).to_yaml
--- !ruby/object:Set
hash:
1: true
2: true
- Je obtenir ce que nous sommes en déclarant un Ensemble de balises. Je ne suis pas d'obtenir ce que l'subséquente de hachage de cartographie a à faire avec elle. Sommes-nous déclarer un schéma? Quelqu'un peut-il me montrer un exemple avec plusieurs balise déclarations?
J'ai lu la spec: http://yaml.org/spec/1.2/spec.html#id2761292
%TAG ! tag:clarkevans.com,2002:
Est cette déclaration d'un schéma? Est-il autre chose d'un analyseur de a à faire afin d'analyser correctement le fichier? Un fichier de schéma d'un certain type?
http://www.yaml.org/refcard.html
Tag property: # Usually unspecified.
none : Unspecified tag (automatically resolved by application).
'!' : Non-specific tag (by default, "!!map"/"!!seq"/"!!str").
'!foo' : Primary (by convention, means a local "!foo" tag).
'!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo").
'!h!foo': Requires "%TAG !h! <prefix>" (and then means "<prefix>foo").
'!<foo>': Verbatim tag (always means "foo").
Pourquoi est-il pertinent d'avoir un primaire et secondaire de l'étiquette, et pourquoi une marque secondaire se référer à un URI? Ce problème est résolu par le fait d'avoir ces?
J'ai l'impression de voir beaucoup de "ce qu'ils sont", et non "pourquoi sont-ils là", ou "quels sont-ils utilisés".
- Dans ton premier exemple,
# Set.new([1,2]).to_yaml
est en fait un commentaire, c'est d'un rubis déclaration qui serait sortie de la YAML-dessous.
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas beaucoup sur les YAML, mais je vais donner un coup de feu:
Tags sont utilisés pour désigner des types. Une balise est déclarée à l'aide de
!
comme vous l'avez vu à partir de la "résumé" il. Le%TAG
directive est une sorte de déclaration d'un raccourci à un tag.Je vais le démontrer avec PyYaml. PyYaml peut analyser le secondaire balise de
!!python/object:
comme un objet python. Le double point d'exclamation est une substitution en lui-même, court pour!tag:yaml.org,2002:
, qui tourne à l'ensemble de l'expression dans!tag:yaml.org,2002:python/object:
. Cette expression est un peu difficile à saisir chaque fois que nous voulons créer un objet, afin de nous donner un alias à l'aide de la%TAG
directive:Nœuds sont analysés par leur type par défaut si vous n'avez pas de balise annotations. Les suivantes sont équivalentes:
Ici est un programme en Python à l'aide de PyYaml démontrant l'utilisation des balises:
Plus d'informations sont disponibles dans le spec
!!
sera étendu à!<tag:yaml.org,2002:>
qui est essentiellementtag:yaml.org,2002:
. au lieu de!tag:yaml.org,2002:
. De même pour!!python/object
, qui sera élargi àtag:yaml.org,2002:python/object:
.