【发布时间】:2016-01-26 13:30:24
【问题描述】:
我有一个问题,针对 XSD 验证 XML 的最佳方法是什么。我需要验证 XML 中允许的值,这可以在 XSD 中使用枚举轻松完成。问题是,允许值的列表非常大,并且在 XSD 中执行此操作可能会很累。另一件事是,允许的值可以不时更改,所以我想避免更改 XSD 架构。我正在考虑使用 java.lang. 过滤这些值。例如。为每个填充值的 XML 标记创建一些配置文件,并且在验证 XML 时,将检查值。如果 XML 标签的内容不在配置文件中,则会引发错误。 我的另一个问题是,哪个解析器最适合这样做? XML 文件有大约 40 个 XML 元素/标签,一个 XML 文件可能有大约 40k 条记录。 我的最后一个问题是,如何更改解析器中默认错误的英语语言?我已经阅读了一些使用解析器的教程,但是您的经验将非常有帮助。谢谢
值示例:
<order>pancake</order>
<order>milk</order>
Pancake 是允许值,因此不会引发错误。 Milk is not allowed,所以会报错:Milk is not allowed.
【问题讨论】:
-
你不希望在java中的xsd 或中枚举的值是对的吗?那么你需要对值进行某种逻辑/限制,例如以 a-f 开头,只有 4 个字母。
-
是的,我不希望在 XSD 中枚举值。它们可以在java中枚举(我正在考虑一些java可读的配置文件,这很容易维护)。
-
好的,所以读取配置文件,读取xml文件并检查特定标签的值是否包含在配置文件中。
-
你会推荐哪个解析器?考虑到最终 XML 中的记录数量,并且我需要将默认错误消息的英语语言更改为不同的语言。非常感谢
标签: java xml validation parsing xsd