Ce n'est un seul point d'exclamation n'en YAML?
Je travaille avec le YamlDotNet bibliothèque et j'obtiens cette erreur lors du chargement d'un fichier YAML:
Bien que l'analyse d'une balise, n'a pas trouvé prévu tag URI.
Le fichier YAML est supposé être bien formée, car il vient droit de RoR. L'erreur semble être déclenchée par le présent code:
formats:
default: ! '%d-%m-%Y'
long: ! '%d %B, %Y'
short: ! '%d %b'
Je ne suis pas un expert, mais je vois de la YAML spec que vous pouvez utiliser un point d'exclamation pour indiquer un objet personnalisé/type, et deux points d'exclamation pour indiquer explicitement un type intégré.
obj1: !custom # whatever
obj2: !!str "My string"
Je n'ai cependant pas pu trouver aucune référence à un point d'exclamation utilisée comme ci-dessus. Qu'est-ce que cela signifie et pourquoi le YAML bibliothèque j'utilise ne semble pas en mesure de l'analyser? Notez que si je supprimer ces points d'exclamation, le fichier est analysé amende.
Vous devez vous connecter pour publier un commentaire.
Que le "!" est le "non spécifique à la balise".
YAML spécification 1.2 séjours (également 1.1):
Prendre un coup d'oeil ici à la balise "grammaire":
Pourquoi est YamlDotNet jeter une erreur? Je ne peux pas être sûr à 100%, mais je pense que vous avez trouvé un bug.
YamlDotNet est un port de LibYAML, il est donc facile de comparer des sources.
Ligne 2635 de scanner.c (LibYAML):
Ligne 2146 de Scanner.cs (YamlDotNet ):
Je sais, est très similaire, mais à ce point
length
est 1 ettag.Length
est de 0. Code en C d'origine prend en charge les "!" (la totalité de la longueur), mais C# ne pas le faire (juste le tag "name" de longueur).Fichier un problème pour le projet.
!
(ou toutes les variantes que vous avez mentionné)?!
(ou toutes les variantes que vous avez mentionné)?