0

我的 XML 文件对子元素有限制,但根元素的名称实际上并不重要。如何将其合并到我的 XSD 中?我试过使用<xs:any>,但我得到:

“S4s-elt-invalid-content.1:'schema' 的内容无效。元素 'any' 无效、错位或经常出现。”

所以我尝试像这样从元素标签中遗漏名称:<xs:element>但后来我得到:

“S4s-att-must-appear:属性‘名称’必须出现在元素‘元素’中。”

4

2 回答 2

1

使用命名类型,并告诉您的验证器使用该类型在根元素处开始验证。

(这有一个可能的障碍:XSD 1.0 建议将其作为一种可能的调用选项,但不需要验证器提供它,因此不能保证您使用的验证器接口将支持它。取决于您的验证器。值得一试,在至少。)

另一种说法是:您已经拥有了您所要求的内容,因为您的 XSD 架构从不关心文档实例的根元素被称为什么。XSD 模式提供了一组元素和类型声明(除其他外)。可以请求验证器在文档中的任何位置开始验证,而不仅仅是根,并且可以使用元素声明或类型声明,或者以“宽松通配符模式”(最常见的默认值)。如果您的验证器没有提供您想要的调用选项,这是您选择验证器的缺陷,而不是 XSD 中的差距。

于 2013-08-16T13:59:53.103 回答
0

我想我可能只是让要求更严格,并坚持使用特定标签作为根元素。应用程序不关心的事实并不是真正的问题。

存在这种限制似乎(对我来说)很奇怪,但我是 XSD 的新手。

于 2013-08-16T14:29:25.240 回答