跳过 XML 选择标签内的一个标签验证

Skip XML validation of one tag within choice tag

我正在尝试指定一个大致如下开始的模式:

    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="baz" />
                <xs:choice>
                    <xs:element name="foo" minOccurs="1" />
                    <xs:element name="bar" minOccurs="1"/>
                </xs:choice>
                <xs:element name="bam" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

非常简单,我们得到了一个在 <choice> 元素前后包含一些必需元素的序列。我想指定以下行为,但是在验证此架构的实例时:

原因是我试图从我自己的自定义应用程序中验证 XML 文件。我可以访问 <foo> 的 .xsd 文件,但无法访问 <bar> 的 .xsd 文件,所以我正在尝试验证我所做的一切可以验证并忽略我不能的。

我是否可以向架构中添加一些内容,告诉验证器遵守 <choice> 标记,但随后只关心验证所选元素之一?

如果您给 bar 一个 xs:anyType 类型,那么它可以包含任何内容 - 实际上内容没有经过验证。