验证具有基于树的结构的文件

时间:2011-05-21 04:58:11

标签: java validation configuration tree

我正在寻找验证器来验证基于树结构的配置文件。 例如 a.student.name乔 a.student.class arts

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

4 个答案:

答案 0 :(得分:8)

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

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

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

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

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

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

更新:现在有schema language for JSON

答案 1 :(得分:1)

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

以下是一些解析器的列表, jYaml,SnakeYaml,YamlBeans Yaml是一种文件格式,支持复杂的hirarchial结构。大多数结构验证可以由上面列出的解析器自动执行。您可能需要附加代码来验证您的业务需求。

也可以使用很少的在线验证器

见:

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

答案 2 :(得分:0)

如果结构与Java属性文件相同,则可以从中读取属性。然后,你需要通过“验证”来决定你的意思。如果适用,您可能很容易解决问题。

答案 3 :(得分:0)

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

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