Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 这是有效的YAML吗?_Validation_Yaml_Well Formed - Fatal编程技术网

Validation 这是有效的YAML吗?

Validation 这是有效的YAML吗?,validation,yaml,well-formed,Validation,Yaml,Well Formed,因此,对于我在C#中的文本解析,我的目标是YAML。我被推荐使用这个库,这是一个快捷的方法 heading: name: A name taco: Yes age: 32 heading: name: Another name taco: No age: 27 等等。这有效吗?似乎有一个名为YAML的验证器,它应该会给出答案。你应该把字符串标记化,伙计。编写解析器很有趣:)部分。YAML支持多个连续“文档”的概念。如果这是您在这里尝试做的,那么是的,它是正确的-您有两个文档(或文

因此,对于我在C#中的文本解析,我的目标是YAML。我被推荐使用这个库,这是一个快捷的方法

heading:
 name: A name
 taco: Yes
 age: 32

heading:
 name: Another name
 taco: No
 age: 27

等等。这有效吗?

似乎有一个名为YAML的验证器,它应该会给出答案。你应该把字符串标记化,伙计。编写解析器很有趣:)

部分。YAML支持多个连续“文档”的概念。如果这是您在这里尝试做的,那么是的,它是正确的-您有两个文档(或文档片段)。要使其更明确,应使用三个破折号将它们分开,如下所示:

---
heading:
 name: A name
 taco: Yes
 age: 32
---
heading:
 name: Another name
 taco: No
 age: 27
另一方面,如果您希望使它们成为同一文档的一部分(这样反序列化它们将产生一个包含两个元素的列表),那么您应该像下面这样编写它。请特别注意缩进级别:

- heading:
  name: A name
  taco: Yes
  age: 32
- heading:
  name: Another name
  taco: No
  age: 27

一般来说,YAML简洁易懂,可读/可编辑,但不是真正的可写,所以您应该始终使用库来生成它。此外,请注意YAML的不同版本之间存在一些突破性的变化,如果您使用符合不同版本标准的不同语言库,这可能会对您造成影响。

那么,YAML似乎已经退出了窗口。我想要既能让人写又能让人读的东西。另外,这个C#实现……我不知道它是否正常工作,文档包括几个单行代码示例。它会在他们自己的YAML文件中呕吐,这是一个老的学生项目。我发现的另一个C#YAML解析器使用的是MS-PL,我不太习惯使用它


我可能最终会使用自己的格式。最好的实践是该死的,我只想把一个键和一个值联系起来

目前正在开发中。现在它支持读取YAML流。它已经在Windows和Mono上进行了测试。当前正在实施写支持。

CodeProject在以下位置有一个:


我没有太多尝试,但值得一看。

您可以在在线yaml解析器中看到输出:

如您所见,只创建了一个标题节点。

试试看


你不必下载任何东西或做任何事情。只要去那里,复制粘贴。就是这样。

只是想对它做一个明确的评论:您有一个重复的映射键问题。YAML处理器将作为一个解决方案解决此问题!!映射,它禁止复制密钥。但并非所有处理器都强制执行此约束,因此,如果将错误的YAML流传递给处理器,则可能会得到错误的结果。

在第二个示例中,您需要将“name”、“taco”和“age”行缩进一点。现在,“heading”与它们对齐,PyYAML将“heading”与其他三个放在同一个映射中。AFAIK,在简单地查看了标准之后,它似乎应该像当前一样工作(但是我可能错了)。同样,我的观点是YAML有很多实现,它们之间的兼容性水平并不总是很清楚:-(//YAML简洁易读/可编辑,但不是真正的可写,所以您应该始终使用库来生成它//关于这个答案的所有其他内容都很准确……但这是关于什么的?提高了eyebrows@dreftymac-一方面,YAML对空白敏感,这带来了标签和空格的所有负担,我需要始终打开使用YAML时,在我的编辑器中显示空白。此外,除了列表和字典之外,我发现很难记住更奇特元素的语法。gasp我甚至发现XML比YAML更容易编写:-)@Greyparter:Hmmm…有趣…听起来像是个人对基于缩进的语法的强烈偏好。公平地说,我最初也不是一个爱好者。Python和YAML都有架构上的原因,有些人并不喜欢。但是,有了一个好的文本编辑器和充分的使用,两者的表达能力确实可以为我们带来好处那些不反对他们的人。YAML可以在模板、代码片段和预制模板的支持下大量手工编写。我通常试图避免巫术,但基本上CDMan说它不是人类可以写的时候,他说它完全是废话。它非常容易编写,就像编辑它一样简单。如果你能理解的话如果空格在Python中很重要,那么你就可以写YAML了,没问题……否则就太傻了,因为真正的人类可写性是YAML的主要目标之一。在这里必须同意@kampu。YAML与任何其他普通文本文件一样人性友好,其中空格用于表示结构和嵌套。