验证具有树形结构的文件

问题描述 投票:0回答:5

我正在寻找一个验证器来验证基于树结构的配置文件。 例如 a.student.name 乔 a.学生班艺术

您能否提出有关验证此类配置的任何想法。到目前为止,我已经搜索过,只能找到 xml 文件的验证器。

java validation configuration tree
5个回答
8
投票

不幸的是,配置文件的模式验证在 XML 之外很少见。我知道的唯一其他选项是 Config4J (我写的)。

如果您访问该网站,则应向下滚动到主页底部以访问完整的手册集(提供 PDF 和 HTML 版本)。我建议您查看手册的以下部分,以大致了解 Config4J 并确定它是否满足您的验证需求。

《入门指南》的第 2 章和第 3 章提供了配置语法和 API 的概述。特别是,第 3.10 节提供了模式语言的快速示例。

《入门指南》第 9 章提供了模式语言的完整定义。

《Java API 指南》第 3 章讨论了编写自己的模式类型以扩展模式语言功能的 API。

更新:我从 kiran.kumar M 的回答中发现,YAML的 Java 和 Ruby 实现有一个名为 Kwalify 的模式验证器。

更新: 现在有一种 JSON 模式语言


1
投票

尝试 www.yaml.org 。 Yaml 支持树结构。

这是几个解析器的列表, jYaml、SnakeYaml、YamlBeans Yaml 是一种文件格式,支持复杂的层次结构。大多数结构验证可以由上面列出的解析器自动执行。您可能需要额外的代码来验证您的业务需求。

也有一些在线验证器可用

参见:

http://yaml-online-parser.appspot.com/

http://instantyaml.appspot.com/

另请参阅https://stackoverflow.com/questions/450399/which-java-yaml-library-should-i-use

验证https://stackoverflow.com/questions/287346/yaml-validation


0
投票

如果结构与Java属性文件相同,则可以从中读取属性。然后,您需要确定“验证”的含义。如果适用,您可能有一个简单的方法来解决您的问题。


0
投票

没有看到任何形式的样品。 如果你想验证某些东西的结构,并且语义不是问题,你可以使用 lex/yacc (阅读 flex/bison)。

根据问题的不同,之后可以冒险出去使用牛。基本上开始写一个迷你编译器了。


0
投票

我发现自己有类似的需求,但找不到任何解决方案,所以我自己做了。 它是一个 Java 配置验证库,可以在这里找到:https://github.com/TTNO1/ConfigValidation4j

它可以进行定制,以适应您在配置中所需的确切规范,并且可以配置为与任何配置库一起使用,目前默认支持 Apache Commons Config 和 SnakeYAML。

© www.soinside.com 2019 - 2024. All rights reserved.