Validation 这是有效的YAML吗?
因此,对于我在C#中的文本解析,我的目标是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支持多个连续“文档”的概念。如果这是您在这里尝试做的,那么是的,它是正确的-您有两个文档(或文
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与任何其他普通文本文件一样人性友好,其中空格用于表示结构和嵌套。