如果没有提供另一个元素,则需要一个元素的 XML 验证 - 没有 XSD 1.1

问题描述

最好不使用 XSD 1.1 - 如果没有提供另一个 XML 元素,则需要一个 XML 元素,反之亦然。

假设我有一个 Job 元素:

<Job>
  <Ref>""</JobReferenceId>
  <Title>""</JobTitle>
  <Type>""</Type>
  <Contract>""</Contract>
</Job>
如果未提供 Type

Contract 应为必需元素,如果未提供 Contract,则 Type 应为必需元素。两者不应同时提供。

我可以在没有 XSD 1.1 的情况下执行此操作吗?

解决方法

听起来很简单xs:choice

xs:sequence
  xs:element name="Ref"
  xs:element name="Title"
  xs:choice
     xs:element name="Type"
     xs:element name="Contract"