我的XML文件对子元素有限制,但根元素的名称无关紧要。如何将其合并到我的XSD中?我尝试过使用<xs:any>
,但我得到了:
“S4s-elt-invalid-content.1:'架构'的内容无效。元素'任何'无效,错位或太频繁发生。”
所以我试着忽略了元素标签上的名字:<xs:element>
然后我得到了:
“S4s-att-must-appear:属性'名称'必须出现在元素'元素'。”
答案 0 :(得分:1)
使用命名类型,并告诉验证者使用该类型在根元素处开始验证。
(有一个可能的问题:XSD 1.0建议作为一个可能的调用选项,但不需要验证器提供它,因此不能保证您使用的验证器接口将支持它。取决于您的验证器。值得尝试,至少。)
另一种表达方式:您已经拥有了所要求的内容,因为您的XSD架构永远不会关注文档实例的根元素被调用的内容。 XSD架构提供了一组元素和类型声明(以及其他内容)。可以请求验证器在文档中的任何位置开始验证,而不仅仅是根,并使用元素声明或类型声明,或者在“宽松通配符模式”(最常见的默认模式)中启动验证。如果你的验证器没有提供你想要的调用选项,那么你选择验证器就是一个缺陷,而不是XSD中的缺口。
答案 1 :(得分:0)
我想我可能只是要求更严格并坚持使用特定标签作为根元素。应用程序不关心的事实并不是真正的问题。
似乎(对我而言)存在这种限制,但我不熟悉XSD。