我正在寻找验证器来验证基于树结构的配置文件。 例如 a.student.name乔 a.student.class arts
您能否就验证此类配置提出任何建议。到目前为止,我已经搜索过,我只能找到xml文件的验证器。
答案 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)。
根据问题,可以冒险出去并在此之后使用牛。基本上开始写一个迷你编译器。