xml模式,并使用一个选项作为文档根

我有一个新的xml模式问题。我相信答案是,我需要做的是不可能与模式,但我想肯定。问题是,我有一个Web服务,它在成功时返回一个带有一种根元素类型的响应(比如<response>),在完全失败时,返回一个带有不同根元素的文档(比如<Exception>)。因此,基本上,两个完全不同的文件:

<响应>……&lt/响应>或
<例外>…&lt/例外情况>

是否可以用一个模式文档描述这两个不同的文档?这就像我想要一个选项作为schema元素下的第一个元素——但这不是有效的语法。我尝试了两种变体,它们解析为有效的xsd,但不验证文档。有什么建议吗?还是这根本不可能?事先非常感谢

实际上,XMLSchema允许您在单个模式中定义替代的根元素,尽管不是通过使用choice元素。相反,您需要做的就是将每个可能的根列为模式元素的直接子元素

例如,给定以下XML模式:

<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema“>
<xs:element name=“foo”>
...
&lt/xs:element>
<xs:element name=“bar”>
...
&lt/xs:element>
&lt/xs:schema>

以下任一文件将根据其进行验证:

<foo>
...
&lt/foo>

或:

<酒吧>
...
&lt/酒吧>

发表评论