【发布时间】:2014-04-08 12:33:22
【问题描述】:
我需要验证一个非常奇怪的 XML 结构。同时,我必须承认,出于政治原因,我不得对其结构进行任何修改。
我已经通过定义一个过于复杂的 Schema 来验证其中的大部分内容。然而,XML 的某些部分似乎几乎不可能使用 XSD 进行验证。这是有问题的sn-p:
<booktitles>
<author>Some Author</author>
<title>Title 1</title>
<year>1666</year>
<title>Title 2</title>
<year>1919</year>
</booktitles>
所以每个 booktitles 条目正好包含 1 个 author 和可变数量的 title - year 对。
因此,如果不修改 XML 结构(是的,我确实意识到这听起来多么愚蠢),是否可以定义一个 XSD 来验证/执行它?
PS:我也有可能使用 JaxB 进行验证。
【问题讨论】:
-
“它不是有效的 XML”。为什么?这对我来说似乎有效。混合元素是合法的。
-
@LutzHorn 你是对的。删除了我的错误陈述
-
没有什么奇怪的,也没有什么无效的。这只是糟糕的 XML 样式:重复的元素或组应该放在“容器”元素中。验证它的 WXS 模式与 DTD 或 RNG 一样简单。
标签: java xml jaxb xsd-validation